是否可以像这样输入下一个命令行:
command1 ; command2;
验证后command1
?
例如我这样做:
make
而且它需要很长时间!我想说:执行此命令后:执行,./myprogram
这样我就可以去喝杯咖啡,而不必等到它完成后再启动下一个命令。
答案1
当然可以,只需在行尾添加一个&&
或,具体取决于您希望在上一个命令成功或失败时执行的操作。因此,对于以下示例,我使用通常的升级方法,但它适用于几乎所有命令。||
#!/bin/bash
# an example upgrade script, call with sudo ./scriptname.sh
apt-get update &&
apt-get -y dist-upgrade &&
apt-get -y autoremove &&
apt-get clean
这将是一个仅在之前的命令连续执行时转发的脚本。请注意,最后一行没有&&
,这是因为如果它在那里会抛出一个错误,因为没有下一个可以跳转到的命令。
现在举一个失败的例子,好吗?再举同样的例子,但我想让我的电脑告诉我我的行为是多么愚蠢(开玩笑):
#!/bin/bash
# an example upgrade script, call with sudo ./scriptname.sh
apt-get update &&
(apt-get -y dist-upgrade &&) || echo "THIS was not working right"
apt-get -y autoremove &&
apt-get clean
因此,如果命令失败,这将输出一些内容,要阅读有关 bash shell 脚本的更多内容,您可以访问我在此处包含的链接:
答案2
为此,您需要&&
在连续的命令之间放置,以便它们逐个执行