Получение всей строки, отправленной в оболочку для исполнения - PullRequest
0 голосов
/ 16 марта 2010

У меня есть скрипт bash, который выглядит так (называется job_result.sh):

#!/bin/bash
$* && zenity --title "Job result" --info --text "SUCSESS: Job '$*'completed" && while pidof zenity > /dev/null; do /usr/bin/wmctrl -a "Job Result" && sleep 2; done

Когда я выполню это с:

$ ./job_result.sh echo "arf" && sleep 10

Я хочу, чтобы произошло следующее:

$ echo "arf" && sleep 10 && zenity --title "Job result" --info --text "SUCSESS: Job '$*'completed" && while pidof zenity > /dev/null; do /usr/bin/wmctrl -a "Job Result" && sleep 2; done

Но, похоже, происходит следующее:

$ echo "arf" && zenity --title "Job result" --info --text "SUCSESS: Job '$*'completed" && while pidof zenity > /dev/null; do /usr/bin/wmctrl -a "Job Result" && sleep 2; done

Вопрос: Как мне получить весь аргумент оболочки? И не только часть, пока &&?

1 Ответ

1 голос
/ 16 марта 2010

попробуйте поставить кавычки

$ ./job_result.sh "echo 'arf' && sleep 10"

Вот предположение, что вы хотите, и можете сделать

поместите ваши параметры в переменную в другом файле. затем, когда вы захотите его использовать, укажите исходный файл, например

$ cat my_shell_libraries
export var="echo 'arf' && sleep 10"
$ . my_shell_libraries
$ ./job_result.sh $var
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...