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

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

10
スペースを含む行の長さでテキストファイルを並べ替える
次のようなCSVファイルがあります AS2345、ASDF1232、Mr. Plain Example、110 Binary ave。、Atlantis、RI、12345、(999)123-5555,1.56 AS2345、ASDF1232、Mrs。Plain Example、1121110 Ternary st。110 Binary ave ..、Atlantis、RI、12345、(999)123-5555,1.56 AS2345、ASDF1232、Mr. Plain Example、110 Binary ave。、RI、リバティシティ、12345、(999)123-5555,1.56 AS2345、ASDF1232、Mr. Plain Example、110 Ternary ave。、Some City、RI、12345、(999)123-5555,1.56 スペースを含む行の長さで並べ替える必要があります。次のコマンドにはスペースが含まれていません。それを変更して自分で機能するようにする方法はありますか? cat $@ | awk '{ print length, $0 }' | sort -n | awk '{$1=""; print $0}'
137 bash  sorting  text  awk 

3
Bashでdo-whileループをエミュレートする
Bashでdo-whileループをエミュレートする最良の方法は何ですか? whileループに入る前に条件をチェックしてから、ループで条件の再チェックを続けることができますが、それはコードの重複です。よりクリーンな方法はありますか? 私のスクリプトの疑似コード: while [ current_time <= $cutoff ]; do check_if_file_present #do other stuff done これはcheck_if_file_present、$cutoff時間後に起動された場合は実行されませんが、しばらくの間は実行されます。
137 bash  loops  do-while 

14
変数がBASHのリストに存在するかどうかを確認する方法
ユーザー入力の有効性をチェックするスクリプトをbashで記述しようとしています。 入力(たとえばvariable x)を有効な値のリストと照合したい。 私が現時点で思いついたのは: for item in $list do if [ "$x" == "$item" ]; then echo "In the list" exit fi done 私の質問は、これを行う簡単な方法があるかどうかです。これは、ほとんどのプログラミング言語に 似てlist.contains(x)います。 追加: リストは次のとおりです: list="11 22 33" 私のコードはlist、文字列ではなく配列として扱われるため、これらの値についてのみメッセージをエコーし​​ます。すべての文字列操作は検証されますが1、失敗することになります。
137 linux  bash 


5
bashでは、標準エラーを別のプロセスにパイプする方法を教えてください。
プロセスの標準出力を別のプロセスの標準入力にパイプする方法はよく知られています。 proc1 | proc2 しかし、proc1の標準エラーをproc2に送信し、標準出力を現在の場所に残したい場合はどうなりますか?次のbashようなコマンドを実行すると思います。 proc1 2| proc2 しかし、悲しいかな、いいえ。これを行う方法はありますか?
137 bash  pipe  stderr 

7
bash / sh-&&と;の違い
私は通常;、1行に複数のコマンドを組み合わせるために使用しますが、一部の人はを好み&&ます。違いはありますか?例えば、cd ~; cd -およびcd ~ && cd -同じものを作るようです。より移植性の高いバージョンはどれですか。たとえば、Androidのシェルなどのbashサブセットでサポートされますか?



16
cronジョブがまだ実行されていない場合にのみ実行する
ですから、私が作成したデーモンの一種のウォッチドッグとしてcronジョブを設定しようとしています。デーモンがエラーで失敗して失敗した場合、cronジョブで定期的に再起動させたいのですが、それがどのように可能であるかはわかりませんが、いくつかのcronチュートリアルを読みましたが、私が行うことを実行できるものを見つけることができませんでした探しています... 私のデーモンはシェルスクリプトから開始されるため、実際には、そのジョブの前回の実行がまだ実行されていない場合にのみ、cronジョブを実行する方法を探しています。 私はこの投稿を見つけました、それは私がロックファイルを使用してやろうとしていることに対する解決策を提供しました、それを行うより良い方法があるかどうかわかりません... ご協力いただきありがとうございます。
136 linux  bash  cron  watchdog 

15
bashで特殊変数(例:〜チルダ)を手動で展開する方法
私のbashスクリプトには、次のような値の変数があります。 ~/a/b/c チルドが拡張されていないことに注意してください。この変数に対してls -ltを実行すると($ VARと呼びます)、そのようなディレクトリは取得されません。この変数を実行せずにbashに解釈/展開させたい。つまり、bashでevalを実行し、評価されたコマンドは実行しないようにしたいと考えています。これはbashで可能ですか? これを拡張せずにスクリプトに渡すにはどうすればよいですか?引数を二重引用符で囲んで渡しました。 このコマンドを試して、私の意味を確認してください。 ls -lt "~" これがまさに私が置かれている状況です。チルダを拡張して欲しいのです。つまり、これらの2つのコマンドを同一にするために、何を魔法で置き換える必要がありますか。 ls -lt ~/abc/def/ghi そして ls -lt $(magic "~/abc/def/ghi") 〜/ abc / def / ghiが存在する場合と存在しない場合があります。

3
bashデフォルト値を割り当て
$ {parameter:= word}デフォルト値を割り当てます。パラメータが設定されていないかnullの場合、単語の展開がパラメータに割り当てられます。次に、parameterの値が置き換えられます。このように、定位置パラメーターと特殊パラメーターを割り当てることはできません。 longの${LONG_VARIABLE_NAME:=hello}代わりにこの機能を使用して書き込むことができると思いましたがLONG_VARIABLE_NAME=${LONG_VARIABLE_NAME:-hello}、bashも 'hello'を実行しようとし、コマンドが見つかりません。それを回避する方法はありますか?それとも私は後者に固執する必要がありますか?誰かがデフォルトの割り当てが実際に役立つ例を挙げられますか?
135 bash 

4
Bashの等価演算子(==、-eq)
誰かがbashスクリプトの-eqとの違いを説明できますか==? 以下に違いはありますか? [ $a -eq $b ] そして [ $a == $b ] それはそれだけである==変数は、数値が含まれている場合にのみ使用されていますか?
135 bash 


25
Bashテンプレート:Bashを使用してテンプレートから構成ファイルを構築する方法?
私は自分のWebサーバー用のApacheとPHPの構成ファイルの作成を自動化するスクリプトを書いています。CPanelやISPConfigのようなGUIを使いたくありません。 ApacheとPHPの構成ファイルのテンプレートがいくつかあります。Bashスクリプトは、テンプレートを読み取り、変数を置換し、解析されたテンプレートをいくつかのフォルダーに出力する必要があります。それを行う最良の方法は何ですか?私はいくつかの方法を考えることができます。どちらが最高ですか、それを行うにはもっと良い方法がありますか?純粋なBashでそれを実行したい(たとえば、PHPでは簡単です) 1)テキストファイルの$ {}プレースホルダーを置き換える方法は? template.txt: the number is ${i} the word is ${word} script.sh: #!/bin/sh #set variables i=1 word="dog" #read in template one line at the time, and replace variables #(more natural (and efficient) way, thanks to Jonathan Leffler) while read line do eval echo "$line" done < "./template.txt" ところで、ここで外部ファイルに出力をリダイレクトするにはどうすればよいですか?変数に引用符が含まれている場合、何かをエスケープする必要がありますか? …


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