Я делаю bash-скрипт, который будет печатать и передавать сложные аргументы другой внешней программе.
./script -m root@hostname,root@hostname -o -q -- 'uptime ; uname -a'
Как вывести необработанные аргументы как таковые:
-m root@hostname,root@hostname -o -q -- 'uptime ; uname -a'
Использование $@
и $*
удаляет одинарные кавычки вокруг uptime ; uname -a
, что может привести к нежелательным результатам. Моему сценарию не нужно анализировать каждый аргумент. Мне просто нужно распечатать / зарегистрировать строку аргумента и передать их другой программе именно так, как они даны.
Я знаю, что могу избежать кавычек с помощью чего-то вроде "'uptime ; uname -a'"
, но я не могу гарантировать, что пользователь это сделает.