例如,我为终端创建了许多别名,以便使用一个命令我可以执行许多命令,所以我可能有一个命令来更新rkhunter它也可以执行freshclam,基本上是这样的:
sudo rkhunter --update && sudo rkhunter --versioncheck && sudo freshclam
Run Code Online (Sandbox Code Playgroud)
我什至可能想要自动执行此任务,以便它每隔一小时左右运行一次,但是存在一个问题,因为如果这些命令中的任何一个失败,那么后面的命令(如果有)将不会执行. 由于这也可能是一项自动化任务,我什至不知道在某处某处出现故障,这意味着超出该点的所有内容甚至都不会运行。
由于这对我来说是目前的一个主要问题,特别是如果我想通过别名等自动执行任务而不创建脚本等,是否有任何方法可以使其中一个命令失败后的下一个命令在&&仍然运行?
此外,另一件事是这不会一直发生,实际上有时它会失败并仍然运行下一个命令,但大多数时候它不会,所以实际上甚至有任何方法可以预测它是否会失败与否,我什至不太确定它为什么会失败。
那么有没有办法解决这个问题,为什么它还是失败了?
使用:
sudo rkhunter --update; sudo rkhunter --versioncheck; sudo freshclam
Run Code Online (Sandbox Code Playgroud)
或者,如果您需要逻辑运算
sudo rkhunter --update || sudo freshclam
sudo rkhunter --update && sudo rkhunter --versioncheck; sudo freshclam
Run Code Online (Sandbox Code Playgroud)
做一些简单的测试 echo
echo -n a; echo -n b; echo -n c
abc
Run Code Online (Sandbox Code Playgroud)echo -n a && echo -n b; echo -n c
abc
Run Code Online (Sandbox Code Playgroud)echo -n a || echo -n b; echo -n c
ac
Run Code Online (Sandbox Code Playgroud)解释
的;命令之间是不超过两个或多个命令之间的隔板,而不考虑错误。
它与脚本中的命令列表相同
command1
command2
command3
Run Code Online (Sandbox Code Playgroud)
&& 如果一个条件失败,检查第二个或第三个条件是没有意义的。结果是一样的:已经失败了。
A B A ? B
------------
T T T
T F F
F T F
F F F
Run Code Online (Sandbox Code Playgroud)|| 当且仅当一个条件失败时,检查第二个和第三个条件才有意义。如果第一个命令成功,第二个将不会被执行,因为结果已经被认为是成功的。
A B A ? B
------------
T T T
T F T
F T T
F F F
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
711 次 |
| 最近记录: |