나는 지금 아래에 주어진 명령을 보았습니다.
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
내가 추측 할 수 있듯이, 아마도 .bash_profile의 변경 사항을 커밋하는 데 사용되지만 정확히 무엇을 사용합니까?
나는 지금 아래에 주어진 명령을 보았습니다.
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
내가 추측 할 수 있듯이, 아마도 .bash_profile의 변경 사항을 커밋하는 데 사용되지만 정확히 무엇을 사용합니까?
답변:
이전에 프로그램의 표준 출력을 재지 정하고 >>
이후에 지정된 파일에 추가합니다.
>> file command
echo a b >> c d
추가 a b d
됩니다 c
.
>>
합니까?을 사용 >>
하여 명령 출력을 파일에 추가합니다.
예제 명령은 기본적으로 여러 부분으로 구성됩니다.
명령 >> 파일 이름
따라서의 출력은에 command
추가됩니다 filename
.
echo
?특정한 경우, echo "…"
명령은 입력 인수를 "표준 출력 디스크립터"인 "stdout"으로 출력합니다. 입력 인수 echo
뒤에 줄 바꿈 ( \n
) 이 오므 로 줄 바꿈이 발생합니다.
여기서 "표준 출력 설명자"는 명령을 실행할 때 셸에 표시되는 출력 스트림에 지나지 않습니다. (즉, 입력 echo foo
하고 Enter 키 foo\n
를 누르면 echo
명령 의 실제 출력이며 쉘 foo
에 줄 바꿈 이 표시됩니다 .)
기본적으로 명령 줄에 쓰는 것은 stdout을 사용하고 있습니다. 일반적으로 오류 메시지에 사용되는“stderr”이라는 다른 설명자가 있습니다. 또한 stdout처럼 인쇄되므로 때때로 산재 될 수 있습니다. 그리고 입력에 사용되는 stdin 디스크립터가 있습니다. 자세한 내용은 이 기사 를 참조하십시오.
항상 stdout을 파일 디스크립터로 경로 재 지정할 수 있으며 , 다음 연산자 중 하나를 사용하여 수행 할 수 있습니다.
>
파일 설명 자로 리디렉션합니다. 존재하지 않는 파일을 작성하거나 이미 존재하는 경우 파일을 쓰기 전에 잘립니다. 따라서 파일은 stdout으로 겹쳐 쓰입니다.
>>
파일 디스크립터에 추가합니다. 파일이 없으면 작성합니다.
2>
또는 2>>
유사한 방식으로 stderr을 리디렉션 할 수도 있습니다 . 또는 stderr과 stdout을 하나의 파일로 결합 할 수 있습니다 2>&1
. 리디렉션 및 예제에 대한 자세한 내용은 이 작은 자습서를 참조하십시오 .
일반적으로, 당신은 시도 할 수 있습니다 explainshell.com 특정 쉘 명령에 대해 당신에게 시각적 인지도와 정보를 제공합니다.
다시 한 번하면
> somefile.txt
파일의 전체 내용이 지워집니다.
> file
파일을 지우지 만 >> file
아무 것도하지 않습니다.
man bash
공식적인 언어로 작성되었으므로 이해하기 어려울 수 있습니다. 반면에이 문구bash >>
는 Google에서 유용한 링크를 거의 반환하지 않습니다. Google에 의존하지 않고 지식을 모으고 싶다는 것은 사실입니다. 이런 이유로 쉽게 검색 할 수있는 질문도 적합 할 수 있습니다. 그러나 귀하가 답변을 바로 제공하지 않았거나 ( 내 질문에 대답 할 수 있습니까? 참조 ) 기존 리소스를 지적했거나 (이해하기 위해 도움이 필요할 수 있음) 사실은 연구가 부족함을 나타냅니다.