나는 그렇게 보이는 간단한 테스트 bash는 스크립트가 :명령 줄 대 스크립트 파일 : rsync를하고 --exclude
#!/bin/bash
cmd="rsync -rv --exclude '*~' ./dir ./new"
$cmd # execute command
나는 또한 ~
로 끝나는 파일을 복사합니다 스크립트를 실행하면 비록 내가 그들을 제외시키는 것을 의미 했어도. 명령 줄에서 바로 똑같은 rsync 명령을 실행하면 작동합니다! 누군가가 bash 스크립트를 작동시키는 이유와 방법을 알고 있습니까?
Btw도 내가 --exclude-from
과 함께 작업 할 수 있음을 알고 있지만 어쨌든 이것이 어떻게 작동하는지 알고 싶습니다.
디버깅 할 변수에 넣습니다. 나는 따옴표를 사용하지 않고 시작했는데, 그것은 확장으로 인해 더 악화되었다. 예 : "rsync -r --exclude * ~ .dir ./new"를 "rsync -r --exclude foo ~ bar ~ foobar.sh ~ ./dir ./new"로 확장했습니다. – Chris
작은 따옴표로 시도 했습니까? (두 번째 권장 사항 에서처럼) 변수에 넣지 않고? 그것은 잘 작동합니다 (그리고 내가 그것을 테스트했을 때) 보였다. –