Leia o link e especialmente
Backslashes inside backticks are handled in a non-obvious manner
:
'...'
é a sintaxe legada requerida apenas pelos mais antigos bourne-shells não compatíveis com POSIX. Há vários motivos para sempre preferir a sintaxe $(...)
, então:
echo \Hello > myFile
e em vez de
out=$(cat myFile | grep '^\Hello')
simplifique um pouco:
out=$(grep '^\Hello' myFile)
então
echo $out
E "Aspas duplas" a cada literal que contenha espaços / metacaracteres e todas expansão: "$ var", "$ (comando" $ var ")", "$ {array [@]} "," a & b ". Use 'aspas simples' para código ou literal $ 's:' Custa $ 5 US ', host ssh' echo "$ HOSTNAME" '. Consulte o link , link e < href="http://wiki.bash-hackers.org/syntax/words"> link .
Então, finalmente:
echo \Hello > myFile
out="$(grep '^\Hello' myFile)"
echo "$out"