Как написать символ "!" Между двойными кавычками в bash?
Я не могу понять, как писать !
символ в скриптах bash, если поместить его в строки двойных кавычек.
Например:
var="hello! my name is $name! bye!"
Что-то сумасшедшее случается, если я набираю следующие команды:
$ age=20
$ name='boda'
$ var="hello! my name is $name! bye!"
Когда я нажимаю Enter, команда наконец повторяется (набирает себя) без последней !
:
var="hello! my name is $name! bye"
Если я нажму Enter еще раз:
$ var="hello! my name is $name bye"
Если я нажимаю ввод снова, он исчезает, ничего не выводится:
$
Если я попробую это:
$ echo "hello\! my name is $name\! bye\!"
Затем выводит: hello\! my name is boda\! bye\!
Если я использую одинарные кавычки, то мое имя не раскрывается:
$ echo 'hello! my name is $name! bye!'
Выходы: hello! my name is $name! bye!
У меня это работает так:
$ echo "hello"'!'" my name is $name"'!'" bye"'!'
Но это один большой беспорядок с "
а также '
невозможно понять / отредактировать / сохранить / обновить.
Кто-нибудь может помочь?
1 ответ
Ваш код будет легче читать, если вы сделаете это так:
:~$ name='boda'
:~$ var="hello! my name is $name! bye!" && echo $var
hello! my name is boda! bye!
&&
- 2-я командаecho $var
выполняется только если 1-я командаvar="hello! my name is $name! bye!"
преуспевает.:~$
- Это не напечатано в этом примере, потому что это обозначает приглашение bash.!
- Вам не нужно избегать!
в приведенной выше команде, потому что она находится внутри пары символов в двойных кавычках.