проблема с sudo и git в Kali Linux, используемая в ВМ в Windows 10

Используйте одинарные кавычки, чтобы символ $ работал как конец -строки -. Если вы хотите также использовать grep с какой-либо переменной, используйте комбинацию двойных и одинарных кавычек, как показано ниже:

grep "$var"'$'

Мое предыдущее сообщение было удалено из-за дублирования. Позвольте мне объяснить, чем это отличается.

В других сообщениях упоминается либо полное использование двойных кавычек "", либо полное использование одинарных кавычек ''. У них обоих есть свои ограничения. Следующее объясняет это.

Проблема со всеми двойными кавычками следующая :grep "pattern$"выдает следующую ошибку:Illegal variable name.

И использование всех одинарных кавычек работает, но если вы хотите подстановку переменных, все одинарные кавычки будут не работать. Например:

Если у меня есть строка A_BOOK, включая другие строки в файле FILE.

$ cat FILE
A_BOOK
B_BOOK_NOT_LAST
C_BOOK

Если я установлю BOOK на переменную BK

set BK = BOOK

Если я использую grep со всеми двойными кавычками, я получаю следующую ошибку:grep "${BK}$" FILE*:1-й $ для замены переменной, 2-й для конца шаблона(Недопустимое имя переменной).

Если я использую grep со всеми одинарными кавычками, подстановка переменных не происходит. grep '${BK}$' FILEничего не возвращает

Если я использую комбинацию двойных и одинарных кавычек, я получаю то, что ожидаю. Двойные кавычки для замены переменных и одинарные кавычки для конца шаблона.

$ grep "${BK}"'$'  # << gives expected output
A_BOOK
C_BOOK
1
09.04.2020, 18:25
0 ответов

Теги

Похожие вопросы