rclone용 bash 스크립트를 생성하는 데 문제가 있습니다.
이로 인해 오류가 발생합니다.
20d: command not found
DAYS='20d'
PURGE='purge --min-age' ${DAYS}
rclone ${PURGE} ${DEST}/old/ $VERBOSE $LOGS
이게 효과가 있어
PURGE='purge --min-age 20d'
rclone ${PURGE} ${DEST}/old/ $VERBOSE $LOGS
첫 번째 것을 사용할 수 있도록 누군가 나를 도와줄 수 있습니까? DAYS만 변경하면 다른 사람들이 이 스크립트를 사용하는 것이 더 쉬울 것입니다.
답변1
PURGE
변수에 대한 참조로 인해 이 문제가 발생합니다 .
현재 다음을 설정 중입니다.
PURGE='purge --min-age'
그런 다음구현하다 ${DAYS}
(20d) PURGE
환경의 변수.
다음을 수행할 수 있습니다.
purge=(purge --min-age "$days")
(배열은 인용되지 않은 변수보다 명령줄 인수를 보관하는 더 안전한 방법입니다.)
다음과 같이 호출할 수 있습니다.
rclone "${purge[@]}" "${dest}/old" "$verbose" "$logs"
참고: 환경 변수에는 대문자 변수 이름만 사용할 수 있습니다.
예를 들어:
$ FOO=bar env | grep FOO
FOO=bar
$ env | grep FOO
$
FOO
변수를 로 설정한 다음 bar
해당 env
환경에서 해당 변수를 사용하여 명령을 실행합니다.
20d
유효한 명령이 아니기 때문에 오류가 발생합니다 .