리눅스에서 다음 명령의 의미

리눅스에서 다음 명령의 의미
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.$$.

관련 정보