Bashスクリプト - エスケープされたドル記号($)をその変数に展開します。

Bashスクリプト - エスケープされたドル記号($)をその変数に展開します。

私の質問

このスクリプトがありますrun.sh

#!/bin/bash

TODAY=$(date)
FILE="my_file.txt.\${TODAY}"

エコーすると、FILE次のような結果が表示されます。

echo ${FILE}

Output: `my_file.txt.${TODAY}`

しかし、私はこれが欲しい:

echo ${FILE}

Output: `my_file.txt.15032023

私の回避策はありますが、より良いものが必要です。

eval echo ${FILE}

Output: `my_file.txt.15032023`

ベストアンサー1

これはあなたが求めているものですか?

#!/bin/bash

TODAY=$(date +"%d%m%y")
FILE="my_file.txt.${TODAY}"

echo "${FILE}"

これで以下が./run.sh生成されます。

user@wang$ ./test.sh 
my_file.txt.150323

おすすめ記事