cat "$1" > /tmp/file.$$ 2>/tmp/file0.$$
grep "*" /tmp/file.$$ >/tmp/file0.$$
제가 이해한 바에 따르면 cat
, 명령에서 오류가 발생하면 오류가 에 표시되고 file0.$$
, 그렇지 않은 경우 내용이 에 표시됩니다 file.$$
. 내가 이해하지 못하는 것은 진실이 무엇인지입니다 $1
.
또한 명령에서 어떤 일이 발생합니까 grep
?
답변1
"$1"은 스크립트의 첫 번째 매개변수입니다.
bash your_script argument_1 argument_2 ...
그러면 $1
값과 같습니다 argument_1
. 인수의 실제 값을 얻을 수 있도록 큰따옴표로 묶는 것이 가장 좋습니다(인수에 특수 문자가 있으면 쉘은 해석을 건너뜁니다).
답변2
고양이
첫 번째 명령은 파일의 출력이라고 생각되는 것을 "$1"
2개의 파일로 덤프합니다. STDOUT의 출력은 로 가고 /tmp/file.$$
, STDERR의 출력은 로 갑니다 /tmp/file0.$$
. 꼬리는 $$
스크립트가 실행될 때의 프로세스 ID입니다.
는 이 스크립트에 전달된 "$1"
명령줄 인수( )입니다 arg1
. 예를 들면 다음과 같습니다.
$ script arg1 arg2
grep
*
이 줄은 파일에서 별표("")가 포함된 모든 줄을 /tmp/file.$$
찾아 /tmp/file0.$$
.