Printf 추가 실패

Printf 추가 실패

CentOS(12.x)에서 다음과 유사한 명령을 실행해 보았습니다.

printf "\nhello" "$HOME"/.bashrc
printf "\nhello" ${HOME}/.bashrc

실행 후 파일 내용을 표시 .bashrc하지만 새로운 내용은 표시되지 않습니다.

set -x둘 다 빈 줄의 출력을 가져오므로 내 명령이 잘못되었을 수 있습니다.

구문에 비슷한 문제가 있었습니다 echo(편집: 잘못 기억했을 수도 있지만 echo>>와 같은 추가 연산자 없이 무언가를 추가할 수 있다는 것을 기억했습니다).

무엇을 잘못 보셨나요?

답변1

.bashrc출력을 파일 로 리디렉션하려는 경우 리디렉션 연산자 >(파일을 덮어쓰게 됨)가 필요하거나 귀하의 경우에는 >>(파일을 추가함) 더 적절할 수 있습니다.

printf '\n%s\n' "hello" >> "${HOME}/.bashrc"

Kusalananda는 일반적으로 파일 끝에 후행 개행 문자를 추가하는 것이 좋은 생각이라고 지적합니다. 일부 도구에서는 파일이 개행 문자로 끝날 것으로 예상하며 개행 문자가 없으면 예기치 않은 동작이 발생할 수 있습니다.

관련 정보