Мне нужно передать строку в программу в качестве аргумента из Bash CLI, например
program "don't do this"
Строка может содержать любой символ типа '$'
, '\'
и т.д., и я не хочу, чтобы Bash выполнял какие-либо изменения. Поэтому я думаю об использовании одинарных кавычек.
Однако следующее не работает:
program 'don\'t do this' //escape doesn't work in single quote
В то время как следующие две работы:
program $'dont\'t do this' //seems fine, but any other side effects?
program 'dont'\''do this' //breaking into 3 parts
Первый подход кажется лучше в том, что он получает меньше предварительной модификации (поставьте символ доллара впереди и замените каждый \
на \\
), но я не знаю, что еще может сделать DOLLAR SIGN.
Я действительно искал это, но не могу найти то, что мне нужно...