Üzerinde hiçbir kontrol var bazı işlem sonucu bir dize var. Bu değişkeni kullanarak yazdırdığımda echo
şunu elde ederim:
echo $myvar
hello
Ancak, yaptığımda
if [ $myvar = "hello" ]; then
echo they are equal
else
echo they are not equal
fi
Her zaman eşit olmadıklarını anlıyorum. Bunun bir newline
karakter yüzünden olduğundan şüpheleniyorum .
Dize ayrıca garip davranır. Ben yaparken:
newVAR="this is my var twice: "$myvar$myvar
echo $newVAR
Alırım:
hellois my var twice: hello
Bunun aslında bir a nedeniyle olup olmadığını nasıl kontrol edebilirim newline
ve eğer öyleyse kaldırın?
echo $foo
. Bunun echo "$foo"
yerine yapın.
printf '%q\n' "$string"
herhangi bir dizenin kaçan bir sürümünü alabilirsiniz. Örneğin:printf '%q\n' 'foo\n'
->foo\\n
;printf '%q\n' $'foo\n'
->$'foo\n'