[解決済み] コマンドが空の文字列を出力するかどうかをテストする
2022-03-28 05:39:16
質問
あるコマンドが空の文字列を出力するかどうかをテストするにはどうすればよいですか?
どのように解決するのですか?
<サブ 前回は、あるディレクトリにファイルがあるかどうかをチェックする方法を質問しました。 次のコードで実現できますが、以下をご覧ください。 rspの回答 を使えば、より良い解決策が得られるでしょう。
空の出力
コマンドは
戻る
値を出力します。この出力をキャプチャするには
コマンド置換
;例
$(ls -A)
. Bashで空でない文字列をテストするには、次のようにします。
if [[ $(ls -A) ]]; then
echo "there are files"
else
echo "no files found"
fi
なお、私は
-A
ではなく
-a
というのは、シンボリックカレント(
.
) と親 (
..
)ディレクトリのエントリです。
注意 コメントで指摘されているように、コマンドの代入 は末尾の改行を捕捉しません。 . したがって、コマンドの出力が のみ を使用すると、置換は何も捕捉せず、テストは偽を返します。 非常に低い確率ですが、上記の例では可能性があります。 より詳細な情報は この回答 .
終了コード
コマンドが正常に終了したことを確認したい場合は、次のように検査します。
$?
には、最後のコマンドの終了コード(成功の場合はゼロ、失敗の場合は非ゼロ)が含まれています。たとえば
files=$(ls -A)
if [[ $? != 0 ]]; then
echo "Command failed."
elif [[ $files ]]; then
echo "Files found."
else
echo "No files found."
fi
詳細情報 こちら .
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] ディレクトリが存在しない場合のみmkdirする方法は?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] 標準エラー出力に出力するエコー
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】SEDをワイルドカードで使用する場合
-
[解決済み】firebase-tools "-bash: firebase: command not found".
-
[解決済み] バッシュ Vim.NET」が表示されたらVimを終了させる Warning: 出力先が端末でない"
-
[解決済み] 部分的にコピーされたファイルでscpを再開する方法は?[クローズド]です。
-
npm err インストールエラーの解決策
-
[解決済み] Git のアンプッシュされたコミットを表示する
-
[解決済み] 環境変数を表示/エコーするには?
-
[解決済み] Bashでパイプ出力と終了ステータスをキャプチャする
-
[解決済み】どのgitタグにいるのか表示する?
-
[解決済み] Docker: 実行中のDockerコンテナの停止と削除