bash - 读取捕获输出的命令的返回值
问题描述
通常,当我想知道一个程序是否成功时,我会这样做:
mycommand
RTV=$?
# check if RTV is 0
但是,如果我想在这样的变量中捕获命令的输出怎么办:
MYCOMMANDRES=$(mycommand)
RTV=$?
# check if RTV is 0
会$?还是包含mycommand
进程的返回值?
解决方案
是的,它会的。请注意,这并不意味着“单纯的分配”不会修改分配的值。例如
false
x=5
echo $?
输出 0,因为赋值清除了状态,但是
x=$(printf 5;false)
echo $?
输出 1。
推荐阅读
- jupyter-notebook - 初始化期间遇到错误配置 jupyter_notebook
- angular - ng2-charts:轴上的额外边距
- java - 在 Java 中从 ArrayList 中查找缺失值
- html - 修改闪亮仪表板中的字体颜色
- flutter - 如何解决 getter 'value' 在颤振中被调用为 null
- docker - 使用 kubectl 和 minikube 时无法连接到远程服务器错误
- javascript - 使用 django 视图将 javascript 变量作为 POST 请求发送
- javascript - Spring boot-Ckeditor上传图片并在jsp上获取图片url
- python - GridSearchCV 弃用 iid 未来警告
- azure-logic-apps - Azure 逻辑应用:将大数据从数据库导出到 CSV 文件