나는 이에 대한 답을 찾지 못했고 분명할 것 같지만 여전히 도움이 필요합니다.
명령줄 옵션을 만들려고 할 때 다양한 플래그를 사용하고 이를 에코하여 올바른지 확인했습니다.
그러나 이 예제는 여전히 실패합니다.
declare foo="-n 40 "
echo $foo
실행하면 "40"만 표시됩니다.
앞에 대시를 추가하면-n
, 인쇄--n
백슬래시/이스케이프? 이것을 인쇄합니다. 요컨대, 나는 이 간단한 텍스트를 올바르게 표시하기 위해 도대체 무슨 일이 일어나고 있는지 이해하지 못합니다. 사용해보기도 했는데요--
(처리 중지)는 도움이 되지 않습니다.
가능하다면 문서의 어느 부분을 지적하고 이것이 왜 설명되는지 설명해주세요.-n
그래야 앞으로는 하지 말아야 할 일을 배우고 고칠 수 있어요.
감사해요.
답변1
bash echo
내장 함수는 -n
인수를 그 자체로 해석합니다( help echo
또는 에 설명된 대로 man bash
).
-n
줄바꿈이 추가되지 않았습니다.
일부 다른 echo
구현도 동일한 작업을 수행합니다.
대신 사용하십시오 printf
.
printf '%s\n' "$foo"