При вводе URL Направлений Google Maps в командную строку (для открытия с браузером хрома через Терминал) существует амперсанд (&
) в URL однако терминал повреждает его там из-за материала Unix, являющегося материалом Unix. Есть ли что-то, что я могу ввести в терминал, что, когда команда на самом деле проходит, ее будут рассматривать как амперсанд?
Будет; усилитель; работа?
Необходимо поместить адрес в кавычки:
chromium-browser 'http://whatever.com/?x=1&y=2'
Кавычки зафиксируют это, но можно также выйти из вещей с обратной косой чертой:
echo http://whatever.com/?x=1\&y=2
Не высказывание это лучше, каким-либо образом, это - просто другая опция для таких ситуаций.
Это не будет на самом деле иметь значения в этом случае, но существует различие между одинарными кавычками и двойными кавычками.
Двойные кавычки заменят специальными символами, такими как '$' и кавычки, тогда как одинарные кавычки рассматривают все буквально, за исключением заключительной одинарной кавычки.
Оба соберут в группу текст, который заставляет хром рассматривать его отдельный аргумент и символы как"; #&" не имеют никакого особого значения в том контексте.
Это показывает использование '\' для выхода из двойной кавычки в двойных кавычках и самой обратной косой черты:
mat@sen:~$ echo "a&bc\\#de\"f"
a&bc\#de"f
С одинарными кавычками ничто не изменяется:
mat@sen:~$ echo 'a&bc\\#de\"f'
a&bc\\#de\"f
Без кавычек '&' разделяет его на две команды:
mat@sen:~$ echo a&bc\\#de\"f
[1] 2619
a
bc\#de"f: command not found
[1]+ Done echo a
[1]+ Done echo a
Обычно при контакте с одним видом кавычки можно просто перенести его в другой тип, но можно столкнуться с проблемами с этим:
mat@sen:~$ echo "'a'bc$foo"
'a'bc
Одинарными кавычками не заменяют, но '$'. Следующий синтаксис работает хотя:
mat@sen:~$ echo $'a\'bc$foo'
a'bc$foo