![문자열 주위에 따옴표가 없으면 에코할 수 없는 것 같습니다.](https://linux55.com/image/118138/%EB%AC%B8%EC%9E%90%EC%97%B4%20%EC%A3%BC%EC%9C%84%EC%97%90%20%EB%94%B0%EC%98%B4%ED%91%9C%EA%B0%80%20%EC%97%86%EC%9C%BC%EB%A9%B4%20%EC%97%90%EC%BD%94%ED%95%A0%20%EC%88%98%20%EC%97%86%EB%8A%94%20%EA%B2%83%20%EA%B0%99%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
.sh 스크립트에서 다음 형식을 시도하고 있습니다.
echo 'string' $var >> print.dat
다음을 인쇄합니다.
'string' 14.27
이것이 내가 원하는 것과 거의 같지만 따옴표를 사라지게 해야 합니다. 나에게 필요한 것은:
string 14.27
여기에 해결책을 아는 사람이 있나요? 이것은 간단한 질문이라고 확신하지만 주변을 검색했지만 원하는 것을 찾을 수 없습니다. 어쩌면 정확히 무엇을 검색해야 할지 모르겠습니다.
편집하다:
도움을 주셔서 감사하지만 인정하기는 싫지만 제가 아주 어리석은 실수를 저질렀습니다. print.dat에서는 원하는 대로 계속 인쇄되지만 출력을 보려면 sh -x를 사용하므로 문자열 주위에 따옴표가 표시됩니다.
답변1
echo 'string' $var >print.dat
그러면 아무것도 표시되지 않지만 다음 값 (참조가 없기 때문에 일부 변환이 진행될 수 있음)을 파일에 string
씁니다 . 문자열 주위의 따옴표가 제거됩니다.$var
print.dat
별칭을 지정 하지 않았는지 확인하세요 echo
. 동일한 이름을 가진 별칭이나 셸 함수를 우회하려면 다음을 사용하세요.
command echo 'string' $var >print.dat
아니면 /bin/echo
대신 사용하세요 echo
.
printf
일반적으로 다음보다 이식성이 뛰어난 방법을 사용할 수도 있습니다 echo
.
printf 'string %s\n' "$var" >print.dat
답변2
이 해결 방법은 작업을 수행합니다(셸 백슬래시 백틱에 따라 다름).
echo 'string' $var | tr -d \' >> print.dat