[解決済み] コマンド出力が特定の文字列を含んでいるかどうかを(1行で)テストするには?
2023-07-31 08:25:57
質問
bashの1行で、以下の出力があった場合、どのように終了ステータス0を返すのですか?
/usr/local/bin/monit --version
の出力が正確に
5.5
を含むとき、終了ステータスが 1 になるのですか?
どのように解決するのですか?
! /usr/local/bin/monit --version | grep -q 5.5
(
grep
は、マッチした場合は0、そうでない場合は1を終了ステータスに返します。また
-q
オプション、 "quiet" は、見つかったマッチを表示しないようにします。
grep
に対して、その戻り値だけが必要であると伝えます。つまり
!
はパイプライン全体の終了ステータスを反転させます)。
を追加するように編集しました。
あるいは、これを "純粋な Bash" で行いたい場合、(
grep
を呼び出すのではなく)、書くことができます。
[[ $(/usr/local/bin/monit --version) != *5.5* ]]
(
[[...]]
で説明しています。
の§3.2.4.2 "条件付き構成要素"で説明されています。
Bashリファレンスマニュアル
.
*5.5*
は、fileglob と同じように、0 個以上の文字に加え
5.5
は0文字以上、プラス0文字以上)
関連
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] コマンドラインから .bash_profile を再読み込みする方法は?
-
[解決済み] Bashで文字列を配列に分割する方法は?
-
[解決済み] bash で複数のサブプロセスが終了するのを待ち、いずれかのサブプロセスがコード !=0 で終了したときに終了コード !=0 を返すにはどうすればよいですか?
-
[解決済み] bashを使って関数の出力を変数に代入するにはどうすればよいですか?
-
[解決済み] sed を使ってファイルの名前を大量に変更する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Bashを使ってファイルに特定の文字列が含まれているかどうかを確認する方法
-
[解決済み] スクリプトの実行に関連したファイルの参照
-
[解決済み] 実行中のBASHスクリプトのパスを決定する [重複].
-
[解決済み] bashを使って関数の出力を変数に代入するにはどうすればよいですか?
-
[解決済み] find "の結果をカウントするのに最適な方法は何ですか?
-
[解決済み] unset の使用と変数への空の設定
-
[解決済み] Bashでファイル名を一括変更する
-
[解決済み] bashでファイル(引数)を編集しているコマンドを "その場 "で実行するには?
-
[解決済み] 空のディレクトリの検索
-
[解決済み] WindowsのバッチとLinuxのBashの両方で実行できるスクリプトは?