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

Bashコマンドシェル用に記述されたスクリプトに関する質問。エラー/構文エラーのあるシェルスクリプトについては、ここに投稿する前に、shellcheckプログラム(またはhttps://shellcheck.netのWeb shellcheckサーバー)で確認してください。Bashのインタラクティブな使用に関する質問は、スタックオーバーフローよりもスーパーユーザーで話題になる可能性が高くなります。

12
正規表現に一致する最初の行の後のファイルの部分を取得するにはどうすればよいですか?
約1000行のファイルがあります。私のgrepステートメントに一致する行の後のファイルの部分が必要です。 あれは: $ cat file | grep 'TERMINATE' # It is found on line 534 したがって、535行目から1000行目までのファイルをさらに処理する必要があります。 どうやってやるの?
169 bash  shell  scripting  grep 

7
ターミナルからメールを送信するには?
Linux / MacOSのターミナルからメールを送信する方法があることは知っていますが、それを行う方法に関する適切なドキュメントを見つけることができないようです。 基本的に、ファイルが変更されるたびに通知するbashスクリプトに必要です。
169 bash  email  terminal 

8
単一行のbashで複数のバックグラウンドコマンドを実行するにはどうすればよいですか?
私は通常、次のようなもので複数のコマンドを実行します。 sleep 2 && sleep 3 または sleep 2 ; sleep 3 しかし、1つのコマンドラインコマンドからバックグラウンドで両方を実行したい場合はどうなりますか? sleep 2 & && sleep 3 & 動作しません。そして、どちらも置き換えるん&&で; それを行う方法はありますか?
169 linux  bash  shell 

4
xargsを使用したシェル関数の呼び出し
xargsを使用して、より複雑な関数を並列に呼び出そうとしています。 #!/bin/bash echo_var(){ echo $1 return 0 } seq -f "n%04g" 1 100 |xargs -n 1 -P 10 -i echo_var {} exit 0 これはエラーを返します xargs: echo_var: No such file or directory これを達成するためにxargsをどのように使用できるか、またはその他の解決策に関するアイデアがあれば歓迎します。
168 bash  sh  xargs 

9
Linuxでディレクトリをループする方法は?
Linuxのbashでスクリプトを作成していて、指定されたディレクトリ内のすべてのサブディレクトリ名を調べる必要があります。これらのディレクトリをループする(および通常のファイルをスキップする)にはどうすればよいですか? 例: 指定されたディレクトリ/tmp/ には、次のサブディレクトリがあります。/tmp/A, /tmp/B, /tmp/C A、B、Cを取得したい。
168 linux  bash 

4
bashでmod演算子を使用する方法
私はこのような行を試しています: for i in {1..600}; do wget http://example.com/search/link $i % 5; done; 出力として取得しようとしているのは次のとおりです。 wget http://example.com/search/link0 wget http://example.com/search/link1 wget http://example.com/search/link2 wget http://example.com/search/link3 wget http://example.com/search/link4 wget http://example.com/search/link0 しかし、私が実際に得ているのは次のとおりです。 wget http://example.com/search/link

4
Bashの「if」ステートメントの「and」演算子
単純なBashスクリプトを作成して、Webサイトがダウンしているかどうか、および何らかの理由で「and」演算子が機能していないかどうかを確認しようとしています。 #!/usr/bin/env bash WEBSITE=domain.com SUBJECT="$WEBSITE DOWN!" EMAILID="an@email.com" STATUS=$(curl -sI $WEBSITE | awk '/HTTP\/1.1/ { print $2 }') STRING=$(curl -s $WEBSITE | grep -o "string_to_search") VALUE="string_to_search" if [ $STATUS -ne 200 ] && [[ "$STRING" != "$VALUE" ]]; then echo "Website: $WEBSITE is down, status code: '$STATUS' - $(date)" | mail …
168 bash  if-statement 

9
シェルスクリプトの設計パターンまたはベストプラクティス[終了]
現在のところ、この質問は、Q&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 シェルスクリプト(sh、bashなど)のベストプラクティスやデザインパターンについて説明しているリソースを知っている人はいますか?

6
Bashで文字列を正規表現と一致させるにはどうすればよいですか?
私は与えられたときに機能が含まれているbashスクリプト記述しようとしています.tar、.tar.bz2、.tar.gzなどのファイルには、ファイルを解凍するために、関連するスイッチとタールを使用します。 私はif elif thenステートメントを使用して、ファイル名をテストしてそれが何で終わるかを確認し、正規表現のメタ文字を使用して一致させることができません。 コマンドラインで 'test'を使用しているスクリプトを常に書き換えるのを保存するために、以下のステートメントが機能するはずだと思いました。角括弧、引用符、メタ文字のすべての組み合わせを試しても、失敗します。 test sed-4.2.2.tar.bz2 = tar\.bz2$; echo $? (this returns 1, false) 問題は単純なものであり、どこを見ても確認できましたが、どうすればよいかを理解することはできません。誰か私がこれを行う方法を知っていますか?
166 regex  string  bash 

10
Bashのevalコマンドとその一般的な使用法
bashのmanページを読んだ後、この投稿に関して。 evalコマンドが正確に何を行うのか、およびその典型的な使用法を理解するのにまだ問題があります。たとえば、次の場合: bash$ set -- one two three # sets $1 $2 $3 bash$ echo $1 one bash$ n=1 bash$ echo ${$n} ## First attempt to echo $1 using brackets fails bash: ${$n}: bad substitution bash$ echo $($n) ## Second attempt to echo $1 using parentheses fails bash: 1: command …
165 linux  bash  shell  scripting  eval 

8
bash:出力のn番目の列を取得する最短の方法
平日に、bashのコマンドから次の形式の列化された出力が繰り返し発生するとします(私の場合svn st、Railsの作業ディレクトリで実行した場合)。 ? changes.patch M app/models/superman.rb A app/models/superwoman.rb コマンドの出力(この場合はファイル名)を処理するには、2番目の列を次のコマンドの入力として使用できるように、何らかの解析が必要です。 私がやっていることはawk、2番目の列を取得するために使用することです。たとえば、すべてのファイルを削除したい場合(これは典型的なユースケースではありません)、次のようにします。 svn st | awk '{print $2}' | xargs rm 私はこれを何度も入力するので、自然な質問は次のとおりです:これをbashで実行するためのより短い(したがってよりクールな)方法はありますか? 注:私の具体的な例はsvnワークフローですが、私が求めているのは基本的にシェルコマンドの質問です。ワークフローがばかげていると感じて別のアプローチを提案した場合、私はおそらくあなたを反対票を投じませんが、他の人はそうする可能性があります。 。ありがとう:)
165 bash  awk 


5
ダブルクリックでこのfile.shを実行可能にするにはどうすればよいですか?
まず、Macを使用しています。 次に、この「file.sh」を実行する必要があります。これを呼び出します。実行する必要があるたびに、ターミナルを開いて次のように入力する必要があります。 cd /Users/Jacob/Documents/folderWithFileInIt bash file.sh これで大丈夫ですが、ダブルクリックでファイルを実行させた方がずっと早いと思いますよね? だから私の質問は、このファイルをダブルクリックで実行できるようにするにはどうすればよいですか? 私の考えは次のいずれかでした。 a)chmodのようなものを端末に入力し、権限を変更しますか? b)ファイルを作成し、上に書いたコードをその中に入れてから、そのファイルを実行可能にしますか? c)これを行うために何らかの方法で自動化を行いますか? どちらの方法が最適ですか、それとももっと良い方法がありますか?また、ターミナルについては初めてなので、できるだけ詳しく説明してください。ありがとう。

4
複数の条件を含むステートメントのbashがエラーをスローする
2つのエラーフラグをチェックするスクリプトを作成しようとしています。1つのフラグ(または両方)が変更された場合、エコーされます-エラーが発生しました。私のスクリプト: my_error_flag=0 my_error_flag_o=0 do something..... if [[ "$my_error_flag"=="1" || "$my_error_flag_o"=="2" ] || [ "$my_error_flag"="1" && "$my_error_flag_o"="2" ]]; then echo "$my_error_flag" else echo "no flag" fi 基本的には、次のようになります。 if ((a=1 or b=2) or (a=1 and b=2)) then display error else no error fi 私が得るエラーは: line 26: conditional binary operator expected line 26: …
165 bash  if-statement  flags 


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