У меня есть строка, которая является результатом какой-то операции, которую я не могу контролировать. Когда я печатаю эту переменную используя 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
Как я могу проверить, действительно ли это происходит из-за a, newlineи, если да, удалить его?
echo $foo. Делай echo "$foo"вместо этого.
printf '%q\n' "$string"получить экранированную версию любой строки. Например:printf '%q\n' 'foo\n'->foo\\n;printf '%q\n' $'foo\n'->$'foo\n'