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