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

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

2
bashスクリプトに.shまたは.bash拡張子を使用しますか?
(Ubuntu-OSXの互換性と使いやすさとPOSIXについては、#!/ bin / shまたは#!/ bin / bashを使用してください) スクリプトでbashシェルを使用する場合、.bash拡張子を使用すると実際にbashが呼び出されるのか、それともシステム構成/最初のシェバン行に依存するのか。両方が有効であるが異なる場合、どちらが優先されますか? スクリプトを.shで終了して「シェルスクリプト」を示すだけで、最初の行でbashシェルを選択する#!/usr/bin/env bashか(例)、または.bashで終了するだけでなく(行1の設定も) )。bashを呼び出したい。
36 bash  shell  shebang 

3
これはbashスクリプトでより慣用的です: `|| true`または `|| : `?
私はあまりシェルスクリプトを実行しないので、ドキュメントをgit submodule読んでいて、このドキュメントで使用されている構文を見たときは少し驚いていました。 サブモジュールのコマンドからゼロ以外の値が返されると、処理が終了します。これ|| :は、コマンドの最後に追加することでオーバーライドできます。 || :コマンドを強制的に正常に終了させるための略記である、検索する必要がありました。コマンドを正常に終了する必要があるときはいつでも、を使用しました|| true。され|| :、より慣用的であると考えられて?
36 bash  shell 

3
単一のコマンドでバックグラウンドで複数のプログラムを実行するにはどうすればよいですか?
単一のコマンドでバックグラウンドで複数のプログラムを実行するにはどうすればよいですか? 以下のコマンドを試しましたが、機能しません。 nohup ./script1.sh & && nohup ./script2.sh & -bash: syntax error near unexpected token '&&' nohup ./script1.sh & ; nohup ./script2.sh & -bash: syntax error near unexpected token ';'

4
bashを使用してファイルから行を読み取る:for vs. while
テキストファイルを読み取って、bashスクリプトを使用して各行で何かを実行しようとしています。 そのため、次のようなリストがあります。 server1 server2 server3 server4 次のように、whileループを使用してこれをループできると考えました。 while read server; do ssh $server "uname -a" done < /home/kenny/list_of_servers.txt whileループは1回の実行後に停止するためuname -a、server1でのみ実行されます ただし、catを使用したforループでは正常に動作します。 for server in $(cat /home/kenny/list_of_servers.txt) ; do ssh $server "uname -a" done さらに私を困惑させるのは、これも機能するということです。 while read server; do echo $server done < /home/kenny/list_of_servers.txt 最初の反復後に最初の例が停止するのはなぜですか?


12
桁区切り記号を数字で追加します
Pythonで re.sub(r"(?<=.)(?=(?:...)+$)", ",", stroke ) 番号をトリプレットで分割するには、たとえば: echo 123456789 | python -c 'import sys;import re; print re.sub(r"(?<=.)(?=(?:...)+$)", ",", sys.stdin.read());' 123,456,789 bash / awkで同じことをする方法は?

4
特定のフォルダー内の特定の拡張子を持つすべてのファイルを削除するにはどうすればよいですか?
現在のディレクトリと作業ディレクトリを(を使用して移動するcd)特定のディレクトリに設定し、次のように入力した場合: rm *.xvg このコマンドは何をしますか?それが真実であること上記のコマンド意志だけの拡張子を持つファイルの削除.xvg だけの作業ディレクトリにありますか? 上記のコマンドがWORKING DIRECTORYにある.xvgファイルのみを削除することを絶対に確認したいので、尋ねる前にこれを試してみることに緊張しました。
36 bash  shell  directory  rm 

4
1番目の引数を除く$ @
この方法で実行されるシェルスクリプトを作成する必要があります。 ./myscript arg1 arg2_1 arg2_2 arg2_3 ....... arg2_# スクリプト内にforループがあります for i in $@ ただし、私が知っているように、$ @には$ 1から$($#-1)までが含まれます。しかし、私のプログラムでは、$ 1は$ 2 $ 3 $ 4などとは明らかに異なります。$ 2から最後までループしたいのですが... ありがとうございました:)
36 bash  shell  scripting 


3
バックティックを理解する( `)
私はコマンドを試しています $ b=5; echo `$b`; -bash: 5: command not found ただし、想定どおり5は出力されません。ここに何が欠けていますか? コマンドで `(バッククォート/バックティック)はどういう意味ですか?`内のコマンドを評価し、それらを出力に置き換えると言っているようです。


2
条件付き構造のセミコロン
なぜセミコロンを1つに配置し、別のセミコロンを配置しないのですか? 結果は同じです コード1 if [ "a" == "a" ] then echo "true" fi コード2 if [ "a" == "a" ]; then echo "true"; fi 2番目のコードのセミコロンは不要ですか? セミコロンを配置する必要がある場合
35 bash  scripting 


9
ファイルの最も長い行を印刷する方法は?
ファイル内の最も長い行を印刷する最も簡単な方法を探しています。私はいくつかのグーグル検索を行いましたが、驚くべきことに答えを見つけることができませんでした。ファイル内の最も長い行の長さを頻繁に印刷しますが、実際に最も長い行を印刷する方法がわかりません。誰もがファイルの最長行を印刷するソリューションを提供できますか?前もって感謝します。
35 bash  awk  filter 

7
dd出力を抑制するにはどうすればよいですか?
を使用してファイルを作成するbashスクリプトがありますdd。問題は、ddが大量の出力をスローして、スクリプトの出力を台無しにすることです。周りを検索して解決策を見つけました: dd if=boot1h of="/dev/r$temp1" >& /dev/null 代替手段はあり/dev/nullますか、それとも唯一の方法にリダイレクトしていますか?
35 bash  sudo  su  dd 

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