파일에 다음을 입력하려면 어떻게 해야 합니까?
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}
. 이런 일이 발생하지 않도록 하려면 항상 여는 태그 단어(첫 번째만!)를 따옴표( )로 묶어 '
이를 방지할 수 있습니다.
저는 개인적으로 다음과 같은 작은 구성 파일을 생성하기 위해 환경을 설정할 때 초기화 스크립트에서 이것을 많이 사용합니다.
cat > ~/.screenrc <<END_OF_HEREDOC_MARKER
defscrollback ${MAX_LINES}
END_OF_HEREDOC_MARKER
답변4
따옴표를 사용하여 게임을 플레이할 수도 있습니다.
% echo 'Hi
> abcd' >> ab.txt
"Hi" 다음에 "Enter"를 누르면 bash에 이를 입력할 수 있습니다. Bash는 명령 계속 프롬프트로 ">"를 사용합니다. 어떤 이유로 백슬래시를 사용하여 별도의 반환을 피할 수 없습니다.