이 bash 스크립트( )를 살펴보십시오 test.sh
.
echo "START"
echo $1
echo "END"
이것이 스크립트를 시작하는 방법입니다.
./test.sh `ls`
내가 이해하고 싶은 것은 ls
명령이 실행될 때입니다.
ls
실행되었다고 생각하시나요 ?앞으로 test.sh
호출되거나 라인 2의 스크립트 내에서 실행된다고 ls
생각 하는 것입니다.test.sh
내가 원하는 것은 ls
호출이 내부적으로 트리거되는지 확인하는 것입니다 test.sh
. 어떻게 해야 하나요?
답변1
ls
이전에 실행되었습니다 test.sh
. 이는 다음 중 하나인 명령 대체의 결과로 실행됩니다.단어 확장셸 실행의 목적은 명령에 제공되는 최종 인수 집합을 구성하는 것입니다( test.sh
이 경우에는 명령을 실행하기 전에 모두 완료해야 합니다).
test.sh
자체적으로 실행되어야 하는 명령을 제공하려면 명령 대체를 건너뛰십시오. test.sh
로 변경
echo "START"
"$1"
echo "END"
를 사용하여 호출합니다 ./test.sh ls
.