开发者

Aquireing the entire string sent to the shell for execution

I have a bash script that looks like this (called 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

When i execute it with:

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

I want the following to happen:

$ 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

But it seems the following is happening:

$ 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

Question: How do i get hold of the entire shell argument? And not just the part until &&?


try putting quotes

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

here's a guess of what you want, and can do

put your parameters in a variable in another file. then when you want to use it, source the file eg

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜