相关疑难解决方法(0)

通过管道从子shell获取退出代码

如何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 …

bash pipe exit-code tee subshell

13
推荐指数
2
解决办法
7692
查看次数

将输出分配给变量时获取管道的退出代码(命令替换)

获取管道命令的退出代码工作正常。

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)

如何获取管道进程的退出代码?

bash shell pipe

5
推荐指数
1
解决办法
1509
查看次数

标签 统计

bash ×2

pipe ×2

exit-code ×1

shell ×1

subshell ×1

tee ×1