Сохранение кавычек в аргументах bash

Я делаю 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'", но я не могу гарантировать, что пользователь это сделает.

17
задан aus 31 May 2012 в 15:21
поделиться