쉘 변수가 작동하지 않습니까?

쉘 변수가 작동하지 않습니까?

$DATE나중에 사용할 수 있도록 날짜를 변수( )에 저장하려고 하는데 작동하지 않는 것 같습니다. 무엇이 문제인지 아시나요?

DATE=$(date +"%Y-%m-%d %R")
sudo mysqldump -u root -pnotgivingyoumypassword --all-databases > ~/mysql_backups/$DATE.sql
cd /var/www && sudo tar -czf ~/www_backups/$DATE.tar ./

고쳐 쓰다 오류 메시지는 다음과 같습니다.

get:tar: 20\:41.tar: 통계할 수 없음: 해당 파일 또는 디렉터리 없음 tar: 이전 오류로 인해 실패하여 종료되었습니다.

mysql 덤프에서는 작동하는 것 같지만 마지막 명령에서 사용할 때는 실패합니다.

답변1

$DATE토큰화를 진행 중인 확장 프로그램을 인용해야 하므로 tar확장되면 하나 대신 두 개의 인수가 전달됩니다 $DATE(리디렉션의 경우에도 동일). 다음은 수정된 버전입니다( 관례에 따라 $DATE로 변경되었으며 $date환경 변수만 모두 대문자여야 합니다).

date=$(date +"%Y-%m-%d %R")
sudo mysqldump -u root -pnotgivingyoumypassword --all-databases > ~/mysql_backups/"$date.sql"
cd /var/www && sudo tar -czf ~/www_backups/"$date.tar" ./

바라보다http://mywiki.wooledge.org/Quotes.

관련 정보