タグ付けされた質問 「bash」

他のBourne / POSIXシェルとは対照的に、GNUのBourne Again SHellに固有の質問。Unixシェル全般に関する質問については、代わりに/ shellタグを使用してください。

3
変数を使用してPS1のターミナルカラーコードを格納しますか?
私の.bashrcでは、ANSIターミナルのカラーコードを使用して、さまざまなビットを色分けしています。次のようになります。 PS1='\u@\h:\w\[\033[33m\]$(virtual_env)\[\033[32m\]$(git_branch)\[\033[0m\]$ ' どこvirtual_envとgit_branch標準出力に出力のものというbashの関数です。 さて、読みやすく変更しやすくするために、色コードを直接に埋め込むのではなく、変数に色コードを保存して参照したいと思いPS1ます。だから私はこのような変数の束を持っています: GREEN="\[\033[32m\]" YELLOW="\[\033[33m\]" RESET="\[\033[0m\]" 次のようなものを書きたいです。 PS1='\u@\h:\w${YELLOW}$(virtual_env)${GREEN}$(git_branch)${RESET}$ ' しかし、これは機能しません-エスケープされているように、色コードがプロンプトに表示されます。代わりに二重引用符を使用すると、色は正しく機能PS1しますが、プロンプトは変更したときにのみ変化しますsource ~/.bashrc。 私は人々が見た他のことを試しました-をprintf使用して、色に一重引用符を使用し、色変数の代わりに\[and \]を入れPS1ますが、何もうまくいかないようです。 カラーコードに変数を使用するにはどうすればよいですか?

2
単純なコマンドのエイリアスとエクスポート
のような単純なコマンドの場合less、エイリアスを作成するか、オプションをエクスポートする方が良いでしょうか?あるものが他のものに勝る利点はありますか? たとえば、生の文字を表示lessする-Rオプションを常に使用する場合、これらのソリューションは両方とも機能します。 export LESS='-R' alias less='less -R' このような単純なケースの場合、一方が他方に勝る利点はありますか?一方が問題を引き起こし、もう一方が問題を起こさないシナリオはありますか? 私はいくつかのページとグーグルを読んinfoでいmanますが、まだこれに固執しています。
33 bash  zsh  alias 


9
vi内のbashコマンド
viの中にbashコマンドを入力してstdoutを取得することは可能ですか? シェルで何かを調べたいという理由だけで、viを閉じて再度開くのは面倒です。
33 bash  shell  vim  vi 

5
Bash Sudoコマンドが見つかりません
ターンキーlinux redmineを使用してVMをセットアップしました。サーバーにSSHで接続して、いくつかのアイテムをインストールしようとしています。 sudoコマンドを認識していないようです。何かをsudoしようとするたびに、次のエラーが表示されます。 -bash: sudo: command not found 「whereis sudo」と入力するために別の場所を読んだところ、出力は sudo:
33 bash  sudo 




7
$ PATHにあるスクリプトと同じディレクトリの下のファイルを参照します
bashスクリプトファイルがあります。このファイルは、$ PATHに追加されたディレクトリの下に置かれ、任意のディレクトリからスクリプトを呼び出すことができます。 スクリプトと同じディレクトリの下に別のテキストファイルがあります。スクリプト内のテキストファイルをどのように参照するのでしょうか。 たとえば、スクリプトがテキストファイルの内容を出力するだけの場合、スクリプトはcat textfile別のディレクトリから呼び出されるとテキストファイルが見つからないため、機能しません。
33 bash  path 

2
「command not found」と「no such file or directory」の違いは?
例えば: $ node -bash: /usr/local/bin/node: No such file or directory $ foo -bash: foo: command not found 違いは何ですか?どちらの場合でも、nodeまたfoo無効なコマンドですが、Unixがnodeバイナリを見つけられないようです。プログラムをアンインストールするとき、たとえばnode、これをクリーンアップする方法はありますか? $ node -bash: node: command not found 編集: typeコマンドの結果: $ type node node is hashed (/usr/local/bin/node) $ type foo -bash: type: foo: not found

1
Bashでnullバイトを使用するにはどうすればよいですか?
Bashのファイルパスにはヌルバイト(ゼロ値のバイト、$'\0')以外の任意の文字を含めることができるため、セパレータとしてヌルバイトを使用するのが最善であると読みました。たとえば、の出力findを別のプログラムに送信する場合、-print0オプションを使用することをお勧めします(findそのバージョンの場合)。 しかし、このようなものは正常に機能しますが(改行で区切られたファイルパスを印刷します。心配する必要はありません。これは単なるデモであり、実際のスクリプトでは実際に実行していません)。 find -print0 \ | while IFS= read -r -d $'\0' ; do echo "$REPLY" ; done このようなものは機能しません: for file in * ; do echo -n "$file"$'\0' ; done \ | while IFS= read -r -d $'\0' ; do echo "$REPLY" ; done for-loop部分だけを試すと、nullバイトを間に入れずに、すべてのファイル名を一緒に印刷することがわかります。 どうしてこれなの?どうしたの?
33 bash  null 

5
端末出力の検索テキスト
私は、$ grails run-app以下のような端末でログインを印刷するコマンドでアプリケーションを実行しています。 私が望んでいるのはuser authorities、このログで特定のテキスト(たとえば)を検索して、さらに検証できるようにすることです。Logging Apisを使用してテキストファイルに書き込む方法の1つですが、現時点ではターミナルで検索したいと思います。 コマンドを示唆する端末上のテキストを直接検索する方法で同様の質問を見つけましたscreenがscreen、この場合にどのように機能するのか分かりません。試しまし $ screen grails run-app たが、先に進むことができませんでした。 私はスクリーンリストを見ることができます prayag@prayag:~/zlab/nioc2egdelonk$ screen -list There is a screen on: 8076.pts-2.prayag (10/06/2013 12:13:25 PM) (Attached) 1 Socket in /var/run/screen/S-prayag.

4
シーケンスのシェルブレース展開で$ variableを使用するにはどうすればよいですか?
$var inbashで、範囲を持つシェルブレース拡張を使用します。単純に置くだけで{$var1..$var2}はうまくいかないので、「横向き」にした... 以下は動作しますが、少し面倒です。 # remove the split files echo rm foo.{$ext0..$extN} rm-segments > rm-segments source rm-segments もっと「通常の」方法はありますか?

8
ファイル名の拡張子を取得する
bashからファイル拡張子を取得するにはどうすればよいですか?ここに私が試したものがあります: filename=`basename $filepath` fileext=${filename##*.} それをすることでbz2、パスからの拡張を取得できます/dir/subdir/file.bz2が、パスに問題があります/dir/subdir/file-1.0.tar.bz2。 可能であれば、外部プログラムなしでbashのみを使用するソリューションをお勧めします。 質問を明確にするために、bashスクリプトを作成して、指定されたアーカイブを1つのコマンドだけで抽出しましたextract path_to_file。その圧縮を見たりタイプをアーカイブすることにより、スクリプトによって決定されますどのようにファイルを抽出するために、それは私が拡張子を取得する場合.bz2などI例えば、これは文字列操作を関与させるべきだと思う、.gzを、.tar.gzの可能性があり.gz、私はその後、.tar前に文字列があるかどうかを確認する必要があります.gz—その場合、拡張子はである必要があります.tar.gz。
33 bash  shell  filenames 

6
bash関数が定義されているファイルを見つける方法は?
(__git_ps1私の場合)bash関数が定義されているファイルを見つける方法がわかりません。 私は実験しdeclare、type、which、何も私のソースファイルを伝えていません。declareファイル名と行番号を印刷できる場所を読みましたが、どのように説明されていませんでした。のhelpページdeclareもそれを言っていません。 この情報を取得するにはどうすればよいですか?
33 bash 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.