首页 > 解决方案 > 读取捕获输出的命令的返回值

问题描述

通常,当我想知道一个程序是否成功时,我会这样做:

mycommand
RTV=$?
# check if RTV is 0

但是,如果我想在这样的变量中捕获命令的输出怎么办:

MYCOMMANDRES=$(mycommand)
RTV=$?
# check if RTV is 0

会$?还是包含mycommand进程的返回值?

标签: bash

解决方案


是的,它会的。请注意,这并不意味着“单纯的分配”不会修改分配的值。例如

false
x=5 
echo $?

输出 0,因为赋值清除了状态,但是

x=$(printf 5;false)
echo $?

输出 1。


推荐阅读