変数置換構文を統合できますか?

変数置換構文を統合できますか?

これら2つの変数置換構文を1つにまとめることはできますか?

rm "$s_a/$domain.conf" 2>/dev/null
rm "$s_e/$domain.conf" 2>/dev/null

良い:

rm "$s_{a,e}/$domain.conf" 2>/dev/null

答え1

あなたできるしかし、拡張を引用するときはそうではありません(二重引用符は文字通りの意味を維持するためです)。最大中かっこを含む「特殊文字」):

rm $s_{a,e}/$domain.conf

徐々に次に展開します。

rm $s_a/$domain.conf $s_e/$domain.conf

その後、その値に移動します。

二重引用符内に中括弧だけが残っているので、行は次のように拡張されます。

RM($s_の値){a,e}/($domainの値)構成ファイル

引用は、意図しない拡張、特に単語の分離やファイル名の拡張を防止します。設定を解除して単語分割の問題を解決し$IFS、ファイル名拡張の問題を解決できます。set -f組み合わせは次のとおりです。

oIFS=$IFS
IFS=
set -f
rm $s_{a,e}/$domain.conf 2>/dev/null
IFS=$oIFS
set +f

関連情報