![find 명령의 "$@"는 무엇을 의미합니까? [중복]](https://linux55.com/image/156364/find%20%EB%AA%85%EB%A0%B9%EC%9D%98%20%22%24%40%22%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9D%84%20%EC%9D%98%EB%AF%B8%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%EC%A4%91%EB%B3%B5%5D.png)
최근에 다음 find 명령을 사용하는 스크립트를 보았습니다.
find "$@" -type f -name "*.iso"
여기서는 무엇을 의미하나요 "$@"
?
답변1
"$@"
쉘에 전달된 모든 인수로 확장됩니다. 구체적인 내용과는 아무 관련이 없습니다 find
.
https://linux.die.net/man/1/bash
@
1부터 시작하는 위치 매개변수로 확장됩니다. 큰따옴표 내에서 확장이 발생하면 각 인수가 별도의 단어로 확장됩니다. 즉, "$@"는 "$1" "$2"와 동일합니다... 단어 내에서 큰따옴표 확장이 발생하면 첫 번째 매개변수의 확장은 원래 단어의 시작 부분으로 연결되고, 마지막 매개변수는 원래 부분에 연결됩니다. 위치 인수가 없으면 "$@" 및 $@는 아무것도 확장되지 않습니다(즉, 삭제됩니다).
다음은 보다 간결하고 실용적이며 관련성이 높은 예입니다.
$ cat a.sh
#!/bin/bash -x
find "$@" -ls
$ ./a.sh foo bar blah
+ find foo bar blah -ls
15481123719088698 4 -rw-rw-rw- 1 steve steve 4 Jun 30 19:29 foo
17451448556173323 0 -rw-rw-rw- 1 steve steve 0 Jun 30 19:29 bar
find: ‘blah’: No such file or directory
$