Bash 获取发送到shell执行的整个字符串

Bash 获取发送到shell执行的整个字符串,bash,Bash,我有一个bash脚本,看起来像这样(称为job_result.sh): 当我执行它时: $ ./job_result.sh echo "arf" && sleep 10 我希望发生以下情况: $ echo "arf" && sleep 10 && zenity --title "Job result" --info --text "SUCSESS: Job '$*'completed" && while pidof zenity

我有一个bash脚本,看起来像这样(称为job_result.sh):

当我执行它时:

$ ./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参数?而不仅仅是部分,直到&?

尝试使用引号

$ ./job_result.sh "echo 'arf' && sleep 10"
这里有一个你想要的和可以做的猜测

将参数放入另一个文件的变量中。然后,当你想使用它,源文件,例如

$ cat my_shell_libraries
export var="echo 'arf' && sleep 10"
$ . my_shell_libraries
$ ./job_result.sh $var

是否有办法将其包装到函数中,以便我可以编写:$./job_result.sh echo“arf”和&sleep 10或捕获所有不带“”encapsultaion的参数?是否每次都手动运行此脚本?或者它将被安排为cron作业?手动。我打算将其用作耗时超过1分钟的作业的包装。比如$ANDROID_ROOT中的mm-b。有什么想法吗?我想不出来。。。自从(和之前)我的原始帖子开始,我就尝试过谷歌搜索。。。
$ cat my_shell_libraries
export var="echo 'arf' && sleep 10"
$ . my_shell_libraries
$ ./job_result.sh $var