내 질문
이 스크립트가 있습니다 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
답변2
음, 언제든지 다음을 사용하여 수동으로 교체를 수행할 수 있습니다 ${var/pattern/replacement}
.
$ FILE='my_file.txt.${TODAY}'
$ TODAY=123456
$ FILE="${FILE/'${TODAY}'/$TODAY}"
$ echo "$FILE"
my_file.txt.123456
또는 기본 출력 형식이 다르다고 "${FILE/'${TODAY}'/$(date +"%d%m%Y"}"
생각하므로 표시되는 형식으로 날짜를 얻으십시오 .date
의견이 있는 참고 사항: YYYY-MM-DD
또는 와 같은 날짜를 사용하면 YYYYMMDD
날짜를 올바른 순서로 더 쉽게 정렬할 수 있습니다.