【发布时间】:2021-01-20 21:10:42
【问题描述】:
我需要获取以 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。
【问题讨论】:
-
请包含minimal reproducible example 并更清楚地描述预期行为。
-
@oguzismail 我对示例代码的获取结果的描述进行了一些更改。请帮助我更好地描述我的问题
-
你能缩小问题的范围吗?例如,如果你去掉反引号,你会从 xargs/yad 得到预期的结果吗?是仅在捕获输出时,还是无论如何他们都会做错事?
-
如果将
xargs yad ...替换为xargs false或xargs sh -c 'echo result; exit 5'会怎样? -
是否保证
yad将被执行一次?如果一个调用返回 1 而另一个返回 2,你对RETVALUE有什么期望?