이 명령을 실행하는 위치에 a
bash 스크립트가 있습니다 ./home/agrillet/
BOOTSTRAP_MODIF="stat -c %Y '/home/agrillet/a'"
출력은 다음과 같습니다./a: line 60: stat -c %Y '/home/agrillet/a': No such file or directory
그러나 터미널에서 동일한 명령을 실행하면 작동합니다.
$ stat -c %Y '/home/agrillet/a'
1517831544
두 경우 모두 루트로 명령을 실행하지 않습니다. 누군가 무슨 일이 일어나고 있는지 설명하고 스크립트를 실행할 때 스크립트에 대한 정보를 얻는 방법을 설명할 수 있습니까?
예를 들어 스크립트 내에서 다른 명령을 사용하면 cat /home/agrillet/a
스크립트 자체에서 스크립트를 인쇄할 수 있습니다.
답변1
이것:
BOOTSTRAP_MODIF="stat -c %Y '/home/agrillet/a'"
변수를 BOOTSTRAP_MODIF
string 으로 설정합니다 stat -c %Y '/home/agrillet/a'
. 출력이 생성되지 않습니다.
나중에 변수를 따옴표로 확장하면 "$BOOTSTRAP_MODIF"
해당 문자열을 문자열로 얻게 됩니다. 오류 메시지는 Bash가 해당 이름(공백 및 모두)을 사용하여 명령을 실행하려고 시도하는 것처럼 보이지만 해당 명령이 없습니다.
bash -x
(또는)을 사용하여 스크립트를 실행 sh -x
하거나 set -x
스크립트 내에서 이를 사용하여 쉘이 실제로 실행하려고 하는 명령이 무엇인지 확인할 수 있습니다.
바라보다배쉬 FAQ 050나중에 사용하기 위해 명령을 저장하는 방법에 대해 설명합니다.