私はLinuxに初めて触れました。なぜdateコマンドが一重引用符内で拡張されないのか疑問に思います。
したがって、次のコマンドを実行すると
d=$(date +%m%d)
echo 'A1D$d'
出力は次のとおりですA1D$d
しかし、引用符を追加しないと動作します...
d=$(date +%m%d)
echo A1D$d
出力は次のとおりですA1D0603
誰でも私を助けることができますか?
しなければならない日付コマンドは一重引用符で展開されます。なぜならAWS API コマンド使用すべき一重引用符内の日付コマンド以下のように
aws s3api list-objects --bucket ui-dl-weather-ecmwf-ltf --prefix daily/ --query "Contents[?contains(Key, 'A1D$(date +%m%d)')]" --output text | awk '{print $2, $4}' >> "$FILESIZE
ベストアンサー1
これはコマンドの置換とは関係ありません。この変数は$d
どちらの場合も同じ値を持ちます。
ただし、単一引用符を使用すると変数として扱われecho 'A1D$d'
ません。$d
あなたができることは何もありません。
ただし、単一引用符で囲まれた長い文字列があり、その間に変数を拡張する必要がある場合は、引用符を区切ることができます。
echo 'thismustbequoted'"but here appears a ${variable}, yeah"'andmore singlequotedtext'