エコワイルドカードワイルドカード

エコワイルドカードワイルドカード

「圧縮解除」に必要なワイルドカードを含むテキストと変数の組み合わせをエコーし​​ようとすると、次の動作が発生します。

私が言うと:

FILENAME=somefile*.txt
echo "something:" $FILENAME

私は得る:

something: somefile003.txt

これが私が望むものですが、私が言うなら:私が言うなら:

FILENAME=somefile*.txt
echo "something:"$FILENAME

私は得る:

something:somefile*.txt

したがって、引用符と変数の間にスペースがない場合は、ワイルドカードを使用しないようです。スペースを追加せずに*を処理する方法はありますか?

ベストアンサー1

たとえば、配列を処理するシェルを使用すると、配列にbashワイルドカードを使用できます。

FILENAMES=(somefile*.txt)

次のように最初の要素を参照してください。

echo "something:${FILENAMES[0]}"

それともみんなこんなことじゃないか

echo "somethings:${FILENAMES[@]}"

変数を使用するときは、変数を「二重引用符」として使用することをお勧めします。これにより、誤って複数の単語に広がることを防ぐことができます。

おすすめ記事