Portál AbcLinuxu, 9. června 2025 07:06
# echo "neco!"tak my to hodi chybu:
bash: !": event not foundJa ale potrebuju jeden vyraz s vykricnikem zapsat do souboru, tak jsem jen chtěl nasměrovat echo do souboru, ale ted nevim jak toho dosáhnout. Díky za rady!
Řešení dotazu:
# echo 'neco!'
echo neco\! echo "neco\!" echo 'neco!'Dvojité uvozovky v shellu neuvozují vše, některé znaky uvnitř mají pořád svou platnost a musíte je uvodit zpětným lomítkem. A nebo použít jednoduché uvozovky, ty uvozují skoro vše. Pokud uvnitř textu nechcete nic uvozovat ani nahrazovat, používal bych spíš jednoduché uvozovky, nevím, proč ostatní většinou i pro tyto případy používají dvojité…
bash
a zkoušel jsem to v zsh
. Pro bash
by mělo platit tohle (z man bash
):
Enclosing characters in double quotes preserves the literal value of all characters within the quotes, with the exception of $, `, \, and, when history expansion is enabled, !. The characters $ and ` retain their special meaning within double quotes. The backslash retains its special meaning only when followed by one of the following characters: $, `, ", \, or <newline>. A double quote may be quoted within double quotes by preceding it with a backslash. If enabled, history expansion will be performed unless an ! appearing in double quotes is escaped using a backslash. The backslash preceding the ! is not removed.
neco\!
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.