아래 명령어에서는 명령어 대신 $0
찾은 파일을 평가하는 이유가 궁금합니다.find
echo
$ find . -type f -perm -u=x -exec bash -c '
/bin/echo $0 is the name of the file' {} \;
$0
큰 따옴표, 등호를 사용하고 작은 따옴표를 사용하면 확장이 지연된다는 것을 알고 있지만 호출되는 명령(보통 ) 이기 때문에 -bash
확장되지 않는 이유는 무엇입니까 ?/bin/echo
$0
답변1
bash
매뉴얼 페이지 에서 :
-c If the -c option is present, then commands are read from the first
non-option argument command_string. If there are arguments after
the command_string, they are assigned to the positional
parameters, starting with $0.
bash
파일 이름은 중괄호를 사용하여 인수로 제공되므로 {}
에 할당됩니다 $0
. $0
그런 다음 확장은 bash에 의해 수행됩니다.이전에전화해 보세요 /bin/echo
.