Bash 스크립트에 다음과 같이 변수를 정의했습니다.
BIRTHDAY="1993-01-11 11:11 +08:00"
이를 epoch로 변환 한 date
다음 .echo
echo $(date -d $BIRTHDAY +%s)
그러나 오류가 발생합니다: date: extra operand ‘+08:00’
.
그러나 bash 대화형 셸에서는 실행할 수 있습니다.
➜ ~ BIRTHDAY="1993-01-11 11:11 +08:00"
➜ ~ date -d $BIRTHDAY +%s
726721860
➜ argos echo $(date -d $BIRTHDAY +%s)
726721860
나는 또한 달리기를 시도했지만 echo $(date -d \"$BIRTHDAY\" +%s)
그것도 효과가 없었습니다.
그럼, 이게 뭐가 문제야?
답변1
다음과 같은 견적이 필요합니다 "$BIRTHDAY"
.
echo $(date -d "$BIRTHDAY" +%s)
실제로 zsh를 대화형 쉘로 사용하고 있는 것으로 보입니다. 이는 이 명령이 작동하는 유일한 쉘이기 때문입니다(기본 IFS 값 사용).
date -d $BIRTHDAY +%s
어쨌든 zsh에서도 변수를 인용하면 도움이 됩니다.
date -d "$BIRTHDAY" +%s