Мне нужно передать строку программе в качестве аргумента из CLI Bash, например
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
Первый подход кажется лучше, поскольку он требует меньше предварительной модификации (ставит символ доллара впереди и заменяет каждый \
на\\
), но я не знаю, что еще может сделать ЗНАК ДОЛЛАРА.
Я действительно гуглил это, но я не могу найти то, что мне нужно...