bash后台操作符&;与和操作员&&;

bash后台操作符&;与和操作员&&;,bash,Bash,如果我尝试在bash shell中执行此代码,则可以正常工作: date && echo "hello world" 但是,如果我想在后台运行date,然后使用echo,它将不起作用: date & && echo "hello world" 编辑: 最后一个任务是运行连接到vpn的脚本: # openvpn /etc/openvpn/client/my_vpn.ovpn 如果这个作品出现了一条信息。问题是v

如果我尝试在bash shell中执行此代码,则可以正常工作:

date && echo "hello world"
但是,如果我想在后台运行date,然后使用echo,它将不起作用:

date & && echo "hello world"
编辑:

最后一个任务是运行连接到vpn的脚本:

# openvpn /etc/openvpn/client/my_vpn.ovpn 
如果这个作品出现了一条信息。问题是vpn命令始终在运行,而下一个命令不显示。Ej:

# openvpn /etc/openvpn/client/my_vpn.ovpn  && notify-send "VPN connect"
我试过:

# openvpn /etc/openvpn/client/my_vpn.ovpn  & && notify-send "VPN connect"

第二条消息从未运行过,所以我尝试运行一个更简单的命令来测试date。

因为与分号和换行符一样,和也是命令分隔符

date ; && echo 'hello world'

也不行

如果是的话

{ date & } && echo 'hello word'

然而,这是可行的。但这没有任何意义,异步命令(例如,
date&
)总是返回零。

因为与分号和换行符一样,与也是命令分隔符

date ; && echo 'hello world'

也不行

如果是的话

{ date & } && echo 'hello word'

然而,这是可行的。但是这没有任何意义,异步命令(例如,
日期&
)总是返回零。

如果在后台运行命令,
和&
的含义是什么?您不必等待命令完成,因此不知道它是否成功。只需单独使用
&
操作符来分隔命令:

date & echo 'hello world'

如果您在后台运行命令,那么
&&
的含义是什么?您不必等待命令完成,因此不知道它是否成功。只需单独使用
&
操作符来分隔命令:

date & echo 'hello world'

需要有关任务的更多信息。 因为确切的答案取决于你没有说的条件

例如:
如果您的任务是在后台运行代码,并且如果成功,则将消息打印到标准输出,则如下所示:

{date&&echo“hello world”;}&

如果您有一个任务,在后台运行某个程序,然后获得结果,则执行如下操作:

coproc dateDoneUndone{
日期&&{echo“完成”}{echo“撤消”}
}
#一些代码
readarray-u${dateDoneUndone[0]}ans;
echo“结果:${ans[@]}”

为了更好地理解此代码的作用,您需要阅读有关的文档,并且。

需要有关任务的更多信息。 因为确切的答案取决于你没有说的条件

例如:
如果您的任务是在后台运行代码,并且如果成功,则将消息打印到标准输出,则如下所示:

{date&&echo“hello world”;}&

如果您有一个任务,在后台运行某个程序,然后获得结果,则执行如下操作:

coproc dateDoneUndone{
日期&&{echo“完成”}{echo“撤消”}
}
#一些代码
readarray-u${dateDoneUndone[0]}ans;
echo“结果:${ans[@]}”

为了更好地理解这段代码的功能,您需要阅读有关和的文档。

这没有意义。&&表示“如果前一个命令的退出代码为0,则执行下一个命令”,但您将前一个程序置于后台,这表示“在某个时间执行”。你还没有退出密码。您可以对后台程序执行
等待
,但是将其置于后台是没有意义的。这没有意义。&&表示“如果前一个命令的退出代码为0,则执行下一个命令”,但您将前一个程序置于后台,这表示“在某个时间执行”。你还没有退出密码。您可以对后台程序执行
等待
,但是将其放置在后台是没有意义的。任务是运行一个连接到vpn的脚本:#openvpn/etc/openvpn/client/mivpn.ovpn,如果此工作显示一条消息。问题是vpn命令始终在运行,而下一个命令不显示。Ej:openvpn/etc/openvpn/client/mivpn.ovpn&¬ify发送“VPN连接”我尝试了:openvpn/etc/openvpn/client/mivpn.ovpn&¬ify发送“VPN连接”第二条消息从未运行,我尝试使用date运行一个更简单的命令进行测试。任务是运行一个连接到vpn的脚本:#openvpn/etc/openvpn/client/mivpn.ovpn,如果此操作正常,则显示一条消息。问题是vpn命令始终在运行,而下一个命令不显示。Ej:openvpn/etc/openvpn/client/mivpn.ovpn&¬ify发送“VPN-connect”我尝试了:openvpn/etc/openvpn/client/mivpn.ovpn&¬ify发送“VPN-connect”第二条消息从未运行过,我尝试运行一个更简单的命令来测试日期。