Linuxでは、単一引用符で日付コマンドを拡張する

Linuxでは、単一引用符で日付コマンドを拡張する

私は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'

おすすめ記事