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

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

6
シェルコマンドを使用してasciiファイルの最初のn行を削除するにはどうすればよいですか?
最初の5〜10行にASCIIテキスト情報を含む複数のファイルがあり、その後に適切に表にされたマトリックス情報が続きます。シェルスクリプトでは、これらの最初の数行のテキストを削除して、純粋なマトリックス情報を別のプログラムで使用できるようにします。これを行うにはbashシェルコマンドをどのように使用できますか? 助けがあれば、RedHatとUbuntu Linuxシステムを使用しています。

6
&&および||の混乱した使用 オペレーター
私は流し読みました/etc/rc.d/init.d/sendmail(私はこれはめったに使用されているけど、私は受験のために勉強しています)ファイル、および私は約少し混乱になった&&と||演算子。次のようなステートメントでそれらを使用できる場所を読みました。 if [ test1 ] && [ test2 ]; then echo "both tests are true" elif [ test1 ] || [ test2 ]; then echo "one test is true" fi ただし、このスクリプトは次のような単一行のステートメントを示します。 [ -z "$SMQUEUE" ] && SMQUEUE="QUEUE" [ -f /usr/sbin/sendmail ] || exit 0 これらは&&and ||演算子を使用してテストに基づいて応答を引き出しているように見えますが、これらの演算子のこの特定の使用に関する説明を掘り下げることはできませんでした。誰もがこれらがこの特定のコンテキストで何をするのか説明できますか?

4
複数行のシェルスクリプトコメント-これはどのように機能しますか?
最近、私はこれまで見たことのない複数行のコメントタイプにつまずきました。スクリプトの例を次に示します。 echo a # : aaa : ddd # echo b これは機能しているように見えvimますが、構文を強調することさえできます。このコメントのスタイルは何と呼ばれ、それに関する詳細情報を見つけるにはどうすればよいですか?

6
どうすればbashで2つの数字を追加(減算など)できますか?
私はで数字と操作を読むことができます: echo "First number please" read num1 echo "Second number please" read num2 echo "Operation?" read op しかし、その後、番号を追加する私のすべての試みは失敗します: case "$op" in "+") echo num1+num2;; "-") echo `num1-num2`;; esac 実行: First number please 1 Second mumber please 2 Operation? + 出力: num1+num2 ...または... echo $num1+$num2;; # results in: 1+2 ...または... echo …

4
すでに実行中のprog1に「&& prog2」を何らかの方法で追加できますか?
ほとんどのシェルは次のような機能を提供&&し、;特定の方法でのコマンドの実行チェーンに。しかし、コマンドが既に実行されている場合、最初のコマンドの結果に応じて、どうにかして実行する別のコマンドを追加できますか? 私が走ったと言う $ /bin/myprog some output... でも本当に欲しかった/bin/myprog && /usr/bin/mycleanup。myprogあまりにも多くの時間が失われるため、すべてを強制終了して再起動することはできません。必要に応じてCtrl+ Zとfg/ を使用できbgます。これにより、別のコマンドにチェーンできますか? 私はほとんどbashに興味がありますが、すべての一般的なシェルの答えは大歓迎です!
87 bash  shell  process  exit 

7
bashで感嘆符(!)を使用できませんか?
curlコマンドを使用!して、パスに感嘆符()が付いたhttp URLにアクセスしようとしています。例えば: curl -v "http://example.org/!287s87asdjh2/somepath/someresource" コンソールはで応答しbash: ... event not foundます。 ここで何が起こっていますか?感嘆符をエスケープするための適切な構文は何でしょうか?

4
二重引用符「[[」内ではなく、単一括弧「[」内ではなく引用符なしのスペースを使用したパラメーター展開が機能するのはなぜですか?
単一または二重の括弧の使用と混同しています。このコードを見てください: dir="/home/mazimi/VirtualBox VMs" if [[ -d ${dir} ]]; then echo "yep" fi 文字列にスペースが含まれていても、完全に機能します。しかし、単一のブラケットに変更すると: dir="/home/mazimi/VirtualBox VMs" if [ -d ${dir} ]; then echo "yep" fi それは言います: ./script.sh: line 5: [: /home/mazimi/VirtualBox: binary operator expected 次のように変更すると: dir="/home/mazimi/VirtualBox VMs" if [ -d "${dir}" ]; then echo "yep" fi 正常に動作します。誰かが何が起こっているのか説明できますか?"${var}"スペースに起因する問題を防ぐために、変数を二重引用符で囲む必要があるのはいつですか?
86 bash  quoting  ksh  test 

4
SIGTERMをBashの子に転送する
次のようなBashスクリプトがあります。 #!/bin/bash echo "Doing some initial work...."; /bin/start/main/server --nodaemon これで、スクリプトを実行しているbashシェルがSIGTERMシグナルを受信した場合、実行中のサーバーにSIGTERMも送信する必要があります(ブロックされるため、トラップは不可能です)。それは可能ですか?
86 bash  shell  signals  docker 


3
/etc/profile.dのスクリプトは何をしますか?
Linux Command LineとShell Scripting Bibleから基本的なシェルスクリプトについて読んでいます。 この/etc/profileファイルは、Bashシェルの起動時に環境変数を設定すると書かれています。この/etc/profile.dディレクトリには、アプリケーション固有の起動ファイルを含む他のスクリプトが含まれています。これらのファイルは、起動時にシェルによっても実行されます。 これらのファイル/etc/profileがBashの起動にとっても重要である場合、なぜこれらのファイルは含まれないのですか? これらのファイルがアプリケーション固有のスタートアップファイルであり、Bashのスタートアップにとって重要ではない場合、なぜスタートアッププロセスの一部なのですか?設定が含まれている特定のアプリケーションが実行されたときにのみ実行されないのはなぜですか?
85 bash  profile  etc 

5
コマンド履歴からのコマンドライン補完
だから、私は歴史とCtrl+を見てきましたが、私がR知っていたとは思っていませんでした。コマンドの先頭に入力し、bashショートカットを使用して履歴内の一致を循環する方法はありますか? # mysq(some shortcut key) 私に与えます: # mysqldump --add-drop-table -e -q -n -C -u (some shortcut key) # mysql -u ben.dauphinee -p

6
Bashの履歴:「ignoredups」および「erasedups」設定は、セッション全体で共通の履歴と競合します
まず第一に、これはSE上の既存のスレッドの複製ではありません。私はこれらの2つのスレッド(1st、2nd)をより良いbash履歴で読みましたが、答えはどれも機能しません--ところでFedora 15を使用しています。 .bashrcユーザーディレクトリ(/ home / aahan /)のファイルに次を追加しましたが、機能しません。誰にも手がかりがありますか? HISTCONTROL=ignoredups:erasedups # no duplicate entries HISTSIZE=1000 # custom history size HISTFILESIZE=100000 # custom history file size shopt -s histappend # append to history, don't overwrite it PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND" # Save and reload the history after each command finishes …

9
エレガントな方法で永遠に何もしない方法は?
に役立つ情報を生成するプログラムstdoutがありますが、からも読み取りますstdin。標準入力に何も提供せずに、標準出力をファイルにリダイレクトしたい。これまでのところ、とても良い:できること: program > output ttyでは何もしません。 ただし、問題はこれをバックグラウンドで実行することです。私が行った場合: program > output & プログラムは中断されます(「中断(tty入力)」)。 私が行った場合: program < /dev/null > output & EOFに達するため、プログラムはすぐに終了します。 私が必要なのはprogram、無期限に何もせず、読まない何かにパイプすることstdinです。次のアプローチが機能します。 while true; do sleep 100; done | program > output & mkfifo fifo && cat fifo | program > output & tail -f /dev/null | program > output & しかし、これは非常にいものです。そこ持ち(言い換えために「無期限に、何もしない」ために、標準のUnixユーティリティを使用して、エレガントな方法であることをman …

3
スクリプトに$“ dollarsign-prefixed string”があるとはどういう意味ですか?
私はこれを初期化スクリプトで見ました: echo $"Stopping Apache" そのドル記号は何のためですか? これまでの私の研究: 私はこれをbashマニュアルで見つけました: 引用 場合は設定、$'string'および$"string"引用は内で行われ${parameter}、二重引用符で囲まれた展開。このオプションはデフォルトで有効になっています。 ...しかし、$接頭辞のある文字列とない文字列の違いは見つかりません: $ echo "I am in $PWD" I am in /var/shared/home/southworth/qed $ echo $"I am in $PWD" I am in /var/shared/home/southworth/qed $ echo $"I am in ${PWD}" I am in /var/shared/home/southworth/qed $ echo "I am in ${PWD}" I am in /var/shared/home/southworth/qed …


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