제어 할 수없는 일부 작업의 결과 인 문자열이 있습니다. 를 사용 하여이 변수를 인쇄하면 다음과 같은 결과 echo
가 나타납니다.
echo $myvar
hello
그러나 내가 할 때
if [ $myvar = "hello" ]; then
echo they are equal
else
echo they are not equal
fi
나는 항상 그들이 같지 않다는 것을 얻는다. 나는 이것이 newline
성격 때문이라고 생각합니다 .
문자열도 이상하게 동작합니다. 내가 할 때 :
newVAR="this is my var twice: "$myvar$myvar
echo $newVAR
나는 얻다:
hellois my var twice: hello
이것이 실제로 발생한 것인지 어떻게 확인 newline
하고, 그렇다면 제거 할 수 있습니까?
echo $foo
. 수행 echo "$foo"
하는 대신.
printf '%q\n' "$string"
모든 문자열의 이스케이프 버전을 얻을 수 있습니다 . 예를 들면 다음과 같습니다printf '%q\n' 'foo\n'
.->foo\\n
;printf '%q\n' $'foo\n'
->$'foo\n'