引用符内のワイルドカード文字

引用符内のワイルドカード文字

これは簡単なことですが、私の記憶によれば、シェルスクリプトを実行するときに二重引用符を使用すると、ワイルドカードと変数を拡張できます。

しかし、以下のコードでは:

#!/bin/sh

echo *.sh
echo "*.sh"
echo '*.sh'

echo $LANG
echo "$LANG"
echo '$LANG'

私は次のような結果を得ます。

bob.sh redeployJboss.sh
*.sh
*.sh
en_US.utf8
en_US.utf8
$LANG

一重引用符はワイルドカードと変数の拡張を防ぎますが、二重引用符は変数の拡張のみを許可し、ワイルドカードは許可しませんか?

使用できる引用パターンはありますか?

答え1

あなたは正しいです。ワイルドカードは一重引用符または二重引用符では機能しません。ただし、二重引用符で囲まれた文字列を使用してワイルドカードを挿入できます。

$echo "こんにちは世界" *.sh "世界こんにちは"
Hello World [ファイル一覧] Goodbye World

関連情報