누구든지 내가 이것을 이해하도록 도와줄 수 있나요?
echo $?
-- 일종의 변수가 출력되는 것으로 알고 있습니다...
이
ls >> $File 2>&1
----누가 이것이 무엇을 하는지 설명해줄 수 있나요?
답변1
echo는 $?
이전 명령의 오류 코드를 반환합니다.
노력하다
false ; echo $?
true ; echo $?
ls >> $File 2>&1
, >>
ls의 ( ) 출력을 파일 이름의 끝으로 리디렉션하고 $File
오류 2>&1
(있는 경우)도 리디렉션합니다.
>>
파일에 추가하는 것을 나타냅니다.
답변2
1. 사용explainshell.com:
또는
2. 쉘의 매뉴얼 페이지를 검색하십시오.
다음을 수행하여:
$ man sh #replace sh with another shell if you need to
Ctrl-F를 누르고 검색 /
패턴을 입력한 후 Enter를 눌러 검색 패턴의 스타일을 지정할 수 있습니다.
요약:
에코: 텍스트 한 줄을 표시합니다.
$?: 가장 최근에 실행된 명령/파이프라인의 종료 상태로 확장됩니다.
엘에스: 디렉토리 내용 나열
>>: 추가 출력
2>&1:stderr(fd=2)를 stdout(fd=1)로 리디렉션합니다(이 컨텍스트에서는 추가 모드의 "$File"입니다).
답변3
이 질문에서 더 중요한 것은 리디렉션 연산자와 관련된 문제입니다.
ls >> $File 2>&1
ls stands for list contents of current directory
>> means append to end of file
$FILE means there is a variable declared as FILE having some value, could be the path to a file.
2>&1 means redirecting both stdin and sterr to the target file, in this case $FILE.