Символ скобки эха для терминала

Изhttps://github.com/mps-youtube/mps-youtube

sudo docker run --device /dev/snd -it --rm --name mpsyt rothgar/mpsyt

1
21.10.2019, 16:23
2 ответа

На самом деле они не являются токенами в смысле лексера, за исключением простых скобок (и ).

{и }в частности вообще не нуждаются в цитировании:

$ echo {Hello World}
{Hello World}

(, за исключением случаев, когда у вас есть {или }в качестве первого слова команды, где они интерпретируются как ключевые слова; или если у вас есть {a,b}в одном слове с запятой или двойной -точкой между ними, где это раскрытие фигурной скобки.)

[]также является специальным только в качестве символов глобуса, и если нет совпадающих имен файлов,поведение по умолчанию — просто оставить слово как -.

Но в любом случае, чтобы избежать их, вы обычно заключаете их в одинарные или двойные -кавычки:

echo "(foo bar)"
echo '(foo bar)'

Или просто экранируйте соответствующие символы один -на -один, хотя это немного утомительно:

echo \(foo\ bar\)

Или любое другое сочетание, которое вам нравится:

echo \(fo"o bar"')'

См.:

15
27.01.2020, 23:10

Характерно для Q :реальное «побег» будет:

echo hello \(world\)

"Чистый" вызов echo с одним аргументом оболочки:

echo "hello (world)"

...и вы получаете "побег" бесплатно.

echo hello "("world")"

совершенно не поддается определению. И так далее. "Вы можете играть с эхом".

"hello $world"и

'hello $world'

не то же самое! Сначала используйте world=mars.

0
27.01.2020, 23:10

Теги

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