파일에 다음 내용을 어떻게 입력할 수 있습니까?
Hi
abcd
을 사용해 보았 echo "Hi\nabcd" >> ab.txt
으나 파일에는 그대로 작성되었습니다( \n
개행 문자 대신 이 포함됨).
답변1
echo
이스케이프 시퀀스를 존중하도록 지시해야 합니다 .
echo -e "Hi\nabcd" >> ab.txt
답변2
답변3
나는 사용하는 것이 좋습니다bash 쉘 기능이라고 함여기 문서. 당신이 설명하는 것을 달성하는 가장 우아한 형태처럼 보입니다. 가장 중요한 것은 여러 줄의 내용이 출력 파일에 있는 것과 정확히 동일한 방식으로 보인다는 것입니다(읽을 수 없고 길고 \n
분리된 문자열과 반대).
cat > ab.txt <<EOL
Hi
abcd
EOL
여기 EOL
에는 쉘의 끝을 찾기 위해 어떤 쉘을 찾아야 하는지 알려주는 마커가 있습니다.여기 문서. 우연히 모순되지 않는 단어를 선택할 수 있는 단어를 임의로 선택할 수 있습니다.여기 문서의 내용 그 자체입니다. 좋은 점은 ${VARIABLES}
대체할 쉘을 가질 수 있다는 것입니다 . 그것이 원하지 않는 경우에는 항상 시작 부분(시작 부분만!) 표시 단어를 따옴표( '
)로 묶어 이를 방지할 수 있습니다.
저는 개인적으로 환경을 설정할 때 다음과 같이 작은 구성 파일을 만들기 위해 init 스크립트에서 이것을 많이 사용합니다.
cat > ~/.screenrc <<END_OF_HEREDOC_MARKER
defscrollback ${MAX_LINES}
END_OF_HEREDOC_MARKER
답변4
다음을 인용하여 게임을 할 수도 있습니다.
% echo 'Hi
> abcd' >> ab.txt
"Hi" 다음에 "Enter"를 눌러 bash에 입력합니다. Bash는 나에게 명령 연속 프롬프트로 '>'를 사용합니다. 어떤 이유로든 백슬래시를 사용하여 개별 반환을 피할 수 없었습니다.