linux - 在 OR 之后执行多个 Bash 命令
问题描述
我正在编写一个 Bash 脚本来安装一些软件;有没有办法创建一个在 OR 之后执行多个命令的单行程序?基本上,我想做的错误检查是这样的:
sudo apt-get install fortune || (echo "Installation failed" ; exit)
echo "Installation successful"
我试过这个,但是安装失败时它不会退出脚本,并且仍然输出“安装成功”。关于如何编辑此方法以使其工作的任何想法?
解决方案
括号创建一个子shell,这是exit
命令退出的地方。您需要一个用大括号定义的命令组。
sudo apt-get install fortune || { echo "Installation failed" >&2; exit 1; }
(注意最后一个分号和大括号周围的空格;所有这些都很重要。)
为了使事情更具可读性,通常您定义一个函数来充当以下单个命令||
:
abort () { echo "Installation of $1 failed" >&2; exit 1; }
sudo apt-get install fortune || abort fortune
推荐阅读
- office-ui-fabric - 在 UI 中心显示 Spinner
- django - Django 从查询集中获取用户权限
- python - 为什么需要学习曲线来确定神经网络是否具有高偏差或方差?
- typo3-8.7.x - 错字3 8.7.19 - 图像始终以整页显示
- shell - 使用变量 1 在文件中查找匹配的名称并使用变量 2 shell 替换
- git - 如何检查 git commit 是否正在工作?
- javascript - ES6 Promise“待定”与“实现”
- node.js - NodeJs in other drive opens up notepad instead
- eclipse - 无法在虚拟桌面内的 Eclipse 中安装 TesttNG 插件
- java - Java程序计算我在另一个星球上的重量