문자열 주위에 따옴표가 없으면 에코할 수 없는 것 같습니다.

문자열 주위에 따옴표가 없으면 에코할 수 없는 것 같습니다.

.sh 스크립트에서 다음 형식을 시도하고 있습니다.

echo 'string' $var >> print.dat

다음을 인쇄합니다.

'string' 14.27

이것이 내가 원하는 것과 거의 같지만 따옴표를 사라지게 해야 합니다. 나에게 필요한 것은:

string 14.27

여기에 해결책을 아는 사람이 있나요? 이것은 간단한 질문이라고 확신하지만 주변을 검색했지만 원하는 것을 찾을 수 없습니다. 어쩌면 정확히 무엇을 검색해야 할지 모르겠습니다.

편집하다:

도움을 주셔서 감사하지만 인정하기는 싫지만 제가 아주 어리석은 실수를 저질렀습니다. print.dat에서는 원하는 대로 계속 인쇄되지만 출력을 보려면 sh -x를 사용하므로 문자열 주위에 따옴표가 표시됩니다.

답변1

echo 'string' $var >print.dat

그러면 아무것도 표시되지 않지만 다음 값 (참조가 없기 때문에 일부 변환이 진행될 수 있음)을 파일에 string씁니다 . 문자열 주위의 따옴표가 제거됩니다.$varprint.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

관련 정보