[解決済み】Bashでglobにマッチするものがあるかどうかをテストする
2022-03-31 16:48:44
質問
1つのファイルが存在するかどうかを確認したい場合、以下の方法でテストすることができます。
test -e filename
または
[ -e filename ]
.
あるグロブがあり、そのグロブに一致する名前のファイルが存在するかどうかを知りたいとします。グロブは、0個のファイルに一致することもあれば(その場合、私は何もする必要がありません)、1個以上のファイルに一致することもあります(その場合、私は何かをする必要があります)。グロブにマッチするファイルがあるかどうかをテストするにはどうすればよいですか? (マッチするファイルの数は気にしません。
if
ステートメントを使用し、ループはありません(単に私が最も読みやすいと思うからです)。
(
test -e glob*
は、グロブが複数のファイルにマッチした場合に失敗します)。
解決方法は?
バッシュ -特有の解決策です。
compgen -G "<glob-pattern>"
パターンをエスケープしないと、マッチにあらかじめ展開されてしまいます。
終了ステータスは
- 一致しない場合は1。
- 1つ以上一致」の場合は0
stdout
はリスト
というグロブにマッチするファイル
.
簡潔さと潜在的な副作用を最小限に抑えるという点では、これが最良の選択肢だと思います。
例
if compgen -G "/tmp/someFiles*" > /dev/null; then
echo "Some files exist."
fi
関連
-
[解決済み】「ambiguous redirect」エラーが発生する
-
[解決済み] 値がベースに対して大きすぎる(エラートークンは "08")[重複]
-
[解決済み] rsyncです。--include-from vs. --exclude-from 実際の違いは何ですか?
-
[解決済み] パイプと二重パイプのどちらの OR 演算子を使うか?
-
[解決済み] bashスクリプトで変数の束縛を解除
-
[解決済み] nohupプロセスを終了させる方法を教えてください。
-
[解決済み] AWS CLIのプロファイルを一時的に切り替えるには?
-
[解決済み] Bashで変数が数値であるかどうかをテストするにはどうすればよいですか?
-
[解決済み] bash で複数のサブプロセスが終了するのを待ち、いずれかのサブプロセスがコード !=0 で終了したときに終了コード !=0 を返すにはどうすればよいですか?
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 '\r': コマンドが見つかりません - .bashrc / .bash_profile [重複].
-
[解決済み] ファイルに書き込むが、ファイルが存在する場合は上書きする
-
[解決済み] cmake execute_process COMMAND [重複]。
-
[解決済み] Bashで最新のディレクトリを変数に取得する
-
[解決済み] nohupプロセスを終了させる方法を教えてください。
-
[解決済み] "[0: コマンドが見つかりません]" in Bash [重複].
-
[解決済み] ファイル内の大文字・小文字を区別しない文字列を grep するには?
-
[解決済み] AWS CLIのプロファイルを一時的に切り替えるには?
-
[解決済み] ターミナルでbashスクリプトを実行するにはどうすればよいですか?
-
[解決済み] シェルスクリプトでワイルドカードを使用してファイルが存在するかどうかを確認する【重複