如何wget从子shell进程获取退出代码?
所以,主要问题是$?等于0.哪里可以$?=8建立?
$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "$?"
0
Run Code Online (Sandbox Code Playgroud)
tee实际上它没有用.
$> OUT=$( wget -q "http://budueba.com/net" ); echo "$?"
8
Run Code Online (Sandbox Code Playgroud)
但是${PIPESTATUS}数组(我不确定它与那种情况有关)也不包含该值.
$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "${PIPESTATUS[1]}"
$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "${PIPESTATUS[0]}"
0
$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "${PIPESTATUS[-1]}"
0
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是 - 如何wget通过tee子shell …
获取管道命令的退出代码工作正常。
echo "ABC" | false | true
echo ${PIPESTATUS[0]} ${PIPESTATUS[1]} ${PIPESTATUS[2]}
#Output is 0 1 0
Run Code Online (Sandbox Code Playgroud)
但是当我将输出分配给一个变量时,无法获得退出代码。
TEST=$(echo "ABC" | false | true)
echo ${PIPESTATUS[0]} ${PIPESTATUS[1]} ${PIPESTATUS[2]}
#Output is 0
Run Code Online (Sandbox Code Playgroud)
如何获取管道进程的退出代码?