我有一个看起来像这样的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
问题:我如何掌握整个shell参数?而不只是直到&&?
的部分答案 0 :(得分:1)
尝试加上引号
$ ./job_result.sh "echo 'arf' && sleep 10"
这是猜测你想要什么,可以做什么
将您的参数放在另一个文件的变量中。然后当你想使用它时,请输入文件,例如
$ cat my_shell_libraries
export var="echo 'arf' && sleep 10"
$ . my_shell_libraries
$ ./job_result.sh $var