변수에 값을 어떻게 할당하나요?

변수에 값을 어떻게 할당하나요?

이름에 지난 5일의 날짜 스탬프가 포함된 5개의 파일을 생성하고 싶습니다. 내 변수에 표시된 날짜 명령을 어떻게 캡처합니까 FILE_DATE?

for i in {1..5};
do 
#FILE_DATE=$(date --date="$i days ago" + "%m%d%Y")  # Yields Try 'date --help' for more information
#FILE_DATE=(date --date="$i days ago" + "%m%d%Y")   # Yields Foobardate
#FILE_DATE=`date --date="$i days ago" + "%m%d%Y"`   # Yields Try 'date --help' for more information
#FILE_DATE="date --date="$i days ago" + "%m%d%Y""   # Yields days command not found

echo "Foobar$FILE_DATE"
done

원하는 출력

Foobar07172017

Foobar07162017

Foobar07152017

Foobar07142017

Foobar07132017

답변1

어떤 운영 체제를 사용하고 있나요? 이것은 CentOS 7에서 작동하지만 따옴표 없이는 다른 오류가 발생합니다.

#!/bin/bash
#
for i in {1..5}; do
file_date=$(date --date="$i days ago" "+ %m%d%Y") # "+ %m%d%Y" Creates a space before the date
echo "Foobar${file_date:1}" # Removes space before the date
done

또는

#!/bin/bash
#
for i in {1..5}; do
file_date=$(date --date="$i days ago" "+%m%d%Y")
echo "Foobar$file_date"
done

둘 다 원하는 결과를 생성합니다.

[root@JBLGSMR002 ~]# ./test.sh
Foobar07172017
Foobar07162017
Foobar07152017
Foobar07142017
Foobar07132017

관련 정보