То, что предлагает Стефан Шазела, определенно лучший способ сделать это. Я просто дам ответ о том, как безопасно цитировать синтаксис расширения параметра, а не использовать подпроцесс sed
, как в ответе R...
myvar='foo \'\''"bar'
quote() {
printf "'%s'" "${1//\'/\'\\\'\'}"
}
printf "value: %s\n" "$myvar"
printf "quoted: %s\n" "$(quote "$myvar")"
bash -c "printf 'interpolated in subshell script: %s\n' $(quote "$myvar")"
Вывод этого скрипта::
value: foo \'"bar
quoted: 'foo \'\''"bar'
interpolated in subshell script: foo \'"bar
Хорошо, очень неловко, но USB-кабель принтера был отключен, так что, конечно, он ничего не печатал... (но ни одно сообщение в административном интерфейсе CUPS не прояснило это ). Снова подключите принтер, и о чудо, выпуск заданий снова работает.:)