パターンに一致する最初のファイルを取得してステートメントで使用しようとしています。にあるのと同じステップを使用しなさい。ワイルドカード拡張で最初の一致を取得するには?私は以下を書きました:
#!/bin/bash
files=("*.sql")
firstfile=${files[0]}
echo $firstfile
echo "The first file is $firstfile"
これを実行すると、出力は次のようになります。
SQLファイル.sql
最初のファイルは* .sqlです。
$firstfile
状況によって値が変わるのはなぜですか?
答え1
最後の行は$ firstfileの実際の内容を印刷します。
最初のエコーは二重引用符を使用しなかったため、ファイルシステムを介して$ firstfileを拡張します。
答え2
ファイル行から引用符を削除すると、次の結果が残ります。
#!/bin/bash
files=(*.sql)
firstfile=${files[0]}
echo $firstfile
echo "The first file is $firstfile"