如何获取 xargs 命令输出和退出代码

时间:2021-01-20 09:00:26

标签: bash shell xargs

我需要获取以 xargs 开头的命令的退出代码和标准输出。这是我的命令行:

RESULT=`ls -1t . | grep \\.sh\$ | xargs -d '\n' yad --list --no-headers  --button DELETE:2 --button BACKUP:1 --button CANCEL:0 --column=1:TEXT`
RETVALUE=$?

RESULT 变量尊重 yad 列表的选择,但 RETVALUE 不尊重按下的按钮。 如 xargs 手册页所述,如果命令(示例中的 yad)以 0 以外的值退出,则退出代码为 123。

1 个答案:

答案 0 :(得分:0)

我找到了修改 IFS 的解决方案。

LIST=`ls -1t . | grep \\.sh\$`
OLDIFS=$IFS
IFS='
'
RESULT=`yad --list --no-headers  --button DELETE:2 --button BACKUP:1 --button CANCEL:0 --column=1:TEXT $LIST`
RETVALUE=$?
IFS=$OLDIFS

这样我就避免使用 xargs(所以我能够获取 yad 的正确退出代码)并且我能够正确处理带有空格的元素。

相关问题