Интересно, возможно ли получить доступ к полному вызову командной строки в скрипте оболочки. В моем скрипте мне нужно передать его дальше. Я обнаружил, что есть аксессоры $@ и $*, но они не передают все символы, например, если я пишу в командной строке:
$ my_script xyz -m "something here"
и в моем скрипте я получаю доступ к аргументам командной строки следующим образом:
аргументы="$*"
эхо $аргументы
Я увижу вывод: xyz -m something here
. К сожалению, он удалил кавычки, возможно ли их сохранить? Затем я хочу передать эти аргументы другому скрипту, я не знаю, сколько их будет, и в какой позиции в строке у меня будут кавычки.
решение1
На самом деле я решил свою проблему, прежде чем в моем первом скрипте я запускаю второй скрипт, как я написал выше, но на самом деле в моем первом скрипте я должен использовать:
второй_скрипт "$@"
Чтобы запустить второй скрипт, теперь он работает как и ожидалось. Релевантны кавычки вокруг $@.