在UNIX Shell脚本中一行执行多个命令


-1

这个问题与这里提出的问题有些相关,https://stackoverflow.com/questions/5130847/shell-multiple-commands-in-one-line,但是区别是,无论是否需要执行全部命令命令成功与否。所以我想,&&这不是一种选择吗?我可以使用;分开的命令和evalbash; 就像是

eval cd /home/user/homedir ; /home/user/homedir/sbin/daemon.sh --config /home/user/homedir/etc/dd2 --script /home/user/homedir/sbin/dd3 start action1

或类似的东西?

请指教,


/home/user/homedir/sbin/daemon.sh --config /home/user/homedir/etc/dd2 --script /home/user/homedir/sbin/dd3 start action1所有命令吗?您能告诉我们什么/home/user/homedir/sbin/daemon.sh?(另外,你为什么要cd/home/user/homedir,然后使用完整路径?)
斯科特

Answers:


0

';' 作品。您也可以使用'&',简化如下:

/home/user/homedir/sbin/daemon.sh --config&/ home / user / homedir / etc / dd2 --script&/ home / user / homedir / sbin / dd3开始操作1

(同时执行,请参见下面的注释以进行澄清)


1
这将在单独的进程中同时运行两个命令。(1)这听起来不像要求的那样。(2)当第一个命令是a时,这几乎是没有意义的cd,因为这意味着第二个命令将无法获得的好处cd;也就是说,它将在键入命令时用户(外壳程序)所在的任何目录中运行,而不是在/home/user/homedir预期的目录中运行。
斯科特

要同时执行,则:cd / home / user / homedir; /home/user/homedir/sbin/daemon.sh --config和cd / home / user / homedir; / home / user / homedir / etc / dd2 --script&cd / home / user / homedir; / home / user / homedir / sbin / dd3开始操作1
Sectio Aurea

是的,斯科特是正确的。正如Sectio Aurea指出的那样,我们应该使用多张cd同时执行脚本。
Jimson Kannanthara James

有人感到困惑。问题给出的外观~/sbin/daemon.sh ––config ~/etc/dd2 ––script ~/sbin/dd3 start action1一个命令。我要求OP进行确认,但没有相反的迹象。但是以上答案已将此命令分为三个部分。 如前所述,不是这个问题的答案。 无论是grep; Scott; /etc/passwd还是grep& Scott& /etc/passwd&会显示我的用户ID信息。
Scott

您在技术上是正确的。可能这只是一个命令,但似乎根本不可能-看起来更像是bash的天真使用。我基于对“真实问题”的预感回答,并期望OP纠正我,如果那没有用。
Sectio Aurea 2013年

0

您所拥有的一切都很好,除非我eval有其他理由(除非有任何理由,否则我会放弃)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.