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

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

2
bashネストされたケース構文および;; ターミネーター
;;ネストされたを含むこのbashスクリプトに十分な(または多すぎる)ターミネーターがありcaseますか? case "$1" in OK) # Nothing needs done echo -n "OK:1" ;; CRITICAL) case "$2" in SOFT) case "$3" in 1|2) soft_reset_pool.sh ;; esac ;; HARD) case "$3" in 1|2) hard_reset_pool.sh ;; 3|4) hard_reset_service ;; esac ;; esac ;; esac 私が怒りを覚えてから数年が経ちました。
14 bash 

3
シェル:コマンド置換で末尾の改行( '\ n')を保持します
後続の改行文字を含む、コマンド置換の正確な出力をキャプチャできるようにしたいと思います。 デフォルトで削除されていることを認識しているため、それらを保持するには操作が必要になる場合があり、元の終了コードを保持する必要があります。 たとえば、可変数の末尾の改行と終了コードを持つコマンドが与えられた場合: f(){ for i in $(seq "$((RANDOM % 3))"); do echo; done; return $((RANDOM % 256));} export -f f 私は次のようなものを実行したい: exact_output f 出力は次のとおりです。 Output: $'\n\n' Exit: 5 bashPOSIX との両方に興味がありshます。
14 bash  shell 

4
bash globを文字列変数にする方法は?
システム情報 OS:OS X bash:GNU bash、バージョン3.2.57(1)-release(x86_64-apple-darwin16) バックグラウンド タイムマシンで、すべてのgit / nodejsプロジェクトからディレクトリとファイルのセットを除外する必要があります。私のプロジェクトディレクトリはしている~/code/private/と~/code/public/私はやってループのbashを使用しようとしているのでtmutil。 問題 短縮版 計算された文字列変数を持っている場合k、forループの前または直前にどのようにグロブするのですか? i='~/code/public/*' j='*.launch' k=$i/$j # $k='~/code/public/*/*.launch' for i in $k # I need $k to glob here do echo $i done 以下の長いバージョンでは、が表示されますk=$i/$j。そのため、forループで文字列をハードコーディングできません。 ロングバージョン #!/bin/bash exclude=' *.launch .classpath .sass-cache Thumbs.db bower_components build connect.lock coverage dist e2e/*.js e2e/*.map libpeerconnection.log node_modules npm-debug.log …

1
バックグラウンドで複数のbash関数を実行し、それらが戻るまで待機する
これは、nvidia-smi複数のホストでコマンドを実行し、その出力を共通ファイルに保存する単純なスクリプトです。ここでの目標は、非同期で実行することです。 ある&の終わりにprocess_host()十分な関数の呼び出し?私のスクリプトは正しいですか? #!/bin/bash HOSTS=(host1 host2 host3) OUTPUT_FILE=nvidia_smi.txt rm $OUTPUT_FILE process_host() { host=$1 echo "Processing" $host output=`ssh ${host} nvidia-smi` echo ${host} >> $OUTPUT_FILE echo "$output" >> $OUTPUT_FILE } for host in ${HOSTS[@]}; do process_host ${host} & done; wait cat $OUTPUT_FILE

4
バックグラウンドで同じコマンドを複数回実行する
複数のコマンドを実行し、bashを使用してそれらをバックグラウンドにするにはどうすればよいですか? 例えば: $ for i in {1..10}; do wait file$i &; done ここで、waitはカスタムバイナリです。 今、私はエラーを受け取ります: syntax error near unexpected token `;' 上記のコマンドを実行するとき。 バックグラウンドになったら、コマンドを並行して実行する必要があります。

3
bashを使用してPHP拡張フォルダーを見つける
Source Guardian PHP拡張機能をインストールするbashスクリプトを作成しようとしていますが、宛先ディレクトリはUbuntuの以降のリリースごとに異なります。 Ubuntu 14.04にPHP5をインストールすると、拡張機能が/ usr / lib / php5 / 20121212 + lfs /に保存されます。Ubuntu15.04では、このディレクトリが変更されます(例:/ usr / lib / 20131226 / /etc/php5/fpm/php.iniと/etc/php5/fpm/php-fpm.confを確認しましたが、これらのファイルには20121212 + lfsまたは20131226の記述がありません。 Source Guardian拡張機能を他の場所に配置すると、ロードされません。 プログラムで拡張フォルダを決定する方法はありますか?
14 bash  ubuntu  php 

3
SSL証明書が有効かどうかを確認するスクリプト
複数のSSL証明書があり、証明書の有効期限が切れたときに通知を受け取りたいです。 私の考えは、毎日簡単なコマンドを実行するcronjobを作成することです。 opensslLinux のコマンドを使用して、リモートサーバーの証明書情報を表示できることを知っています。つまり: openssl s_client -connect www.google.com:443 ただし、この出力には有効期限が表示されません。また、このコマンドをCTRL+で終了する必要がありますc。 スクリプトからリモート証明書の有効期限を確認し(できればを使用openssl)、ユーザーの操作なしで自動的に実行されるように「バッチモード」で実行するにはどうすればよいですか?

4
2つのバックグラウンドコマンドが与えられた場合、どちらかが終了したときに残りのコマンドを終了します
2つのサーバーを起動する単純なbashスクリプトがあります。 #!/bin/bash (cd ./frontend && gulp serve) & (cd ./backend && gulp serve --verbose) 2番目のコマンドが終了すると、最初のコマンドが実行を継続しているようです。 どちらかのコマンドが終了した場合、もう一方が終了するように、これをどのように変更できますか? バックグラウンドプロセスのエラーレベルをチェックする必要はなく、終了したかどうかだけを確認してください。

2
bash変数に画像ファイルを保存する方法は?
次のコマンドを使用した後、 pngString="$(cat example.png)" echo -n "$pngString" > tmp.png tmp.pngをPNGファイルとして開くことができません。$pngString画像ファイルの保存に使用すると、一部の情報が失われる場合があります。 質問は次のとおりです。bashスクリプトの変数を使用して完全な画像情報を保存するにはどうすればよいですか。
14 bash  cat  images  binary  variable 

3
Bashがエラーをスローする、8行目:$ 1:バインドされていない変数
私はgetoptsを使用する方法を学ぼうとしているので、解析された入力でスクリプトを使用できます(getoptsの方が良いと思いますが)。パーティションの使用率を返す簡単なスクリプトを作成しようとしています。問題は、bash関数の1つが、関数$1内の変数として参照しているように思われないことです。参照する理由$1はget_percent、すべてのマウントポイントの代わりに、関数にオプションの引数としてマウントポイントを渡すことができるためです。 スクリプト #!/usr/bin/bash set -e set -u set -o pipefail get_percent(){ if [ -n "$1" ] then df -h $1 | tail -n +2 | awk '{ print $1,"\t",$5 }' else df -h | tail -n +2 | awk '{ print $1,"\t",$5 }' fi } usage(){ echo "script usage: $(basename …

2
bashで開始された実行可能ファイルの順序
testコマンドをbashで実行すると、test(条件式を評価する)組み込みユーティリティが起動します。 $ type test test is a shell builtin $ type -a test test is a shell builtin test is /usr/local/bin/test test is /usr/bin/test $ ただし、type -a test上記の出力に示されているように、test/ usr / local / binディレクトリに別のファイルがあり、/ usr / binディレクトリに別のファイルがあります。実行可能ファイルの順序はどのようになっていますか。つまり、組み込みコマンドは常に優先され、残りのコマンドは$ PATH変数のディレクトリ順序に依存していますか?さらに、起動した実行可能ファイルの順序を変更することは可能です。たとえば、と入力するとtest、bash-builtinの代わりに/ usr / bin / testが起動しtestますか?


1
bashスクリプトでyに自動的に応答するにはどうすればよいですか?
bashスクリプトを使用して一部のプログラムをアンインストールしたい。コマンドを実行した後、ターミナルで、アンインストールするかどうかを確認するメッセージが表示されます。だから私は答える必要がありますy。自動でやり直しy、10秒遅れて応答したい。 この例を実行しましたが、機能しません- #!/usr/bin /opt/MNG/MNGVIEWHP/fe/uninstall sleep 10 echo "y" 何か案が?Centos 7.2
14 bash 

3
bashでのCtrl-BackspaceおよびCtrl-Delete
Debian 8.3を搭載する stty werase '^H' またはArch Linux 2/2016 stty werase '^?' で.bashrc(例えば)を行うCtrl- Backspaceターミナル内の最後の単語を削除します。それでもそれは現代のGUIアプリケーション(例:Firefox)と同じ動作ではありません:それは、最後の削除空白は単語を区切られ、そして最後の単語が空白で区切られていないかのような文字. : , ; " ' & / ( )。 それは作ることが可能であるCtrl- Backspace振る舞いを近代的なGUIアプリケーションに、端末と同様の中に?また、作るためにどのような方法があるCtrl- Deleteカーソルの直前の単語を削除するには?

4
すべてのサブディレクトリにファイルを再帰的に追加します
現在のディレクトリとすべてのサブディレクトリにファイルを再帰的に追加(またはタッチ)するにはどうすればよいですか? たとえば、 私はこのディレクトリツリーを回したいと思います: . ├── 1 │ ├── A │ └── B ├── 2 │ └── A └── 3 ├── A └── B └── I 9 directories, 0 files に . ├── 1 │ ├── A │ │ └── file │ ├── B │ │ └── file │ └── file …

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