Как передать параметры командной строки с кавычками, хранящимися в одной переменной?
Я хочу вызвать внешнее приложение из сценария оболочки, но этот сценарий оболочки получает параметры (из другого сценария) в одной переменной. Все было в порядке, пока мне не пришлось использовать двойные кавычки для одного параметра, но слова разделялись пробелом.
Вот упрощенный пример моей проблемы (sh_param просто печатает все переданные параметры):
<code>#!/bin/sh pass() { echo "Result with \$@" ./sh_param $@ echo "Result with \"\$@\"" ./sh_param "$@" echo "Result with \$*" ./sh_param $* echo "Result with \"\$*\"" ./sh_param "$*" } pass '"single param" separate params' </code>
и результаты (sh_param просто печатает все переданные параметры):
<code>Result with $@ Param: "single Param: param" Param: separate Param: params Result with "$@" Param: "single param" separate params Result with $* Param: "single Param: param" Param: separate Param: params Result with "$*" Param: "single param" separate params </code>
И я хочу:
<code>Param: single param Param: separate Param: params </code>