我需要获取以 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。
答案 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 的正确退出代码)并且我能够正确处理带有空格的元素。