我有一个使用以下代码创建的对话框:
exec 3>&1
selection=$(echo " --backtitle \"Patches\"
--extra-button --extra-label \"See File List\"
--title \"Patches\" --clear --ok-label \"Create\" --cancel-label \"Exit\"
--menu \"Please select:\" $HEIGHT $WIDTH 25 $gridData" |
xargs dialog 2>&1 1>&3)
exit_status=$?
exec 3>&-
除Ok / Cancel对外,该对话框还有一个额外的按钮(虽然我已将其重命名)。除非单击额外按钮,否则它的效果很好,在这种情况下,$ exit_status具有相同的值(123),就像单击取消按钮一样。有没有办法在没有xargs干扰的情况下获得对话框的状态?
答案 0 :(得分:2)
根据xargs
的{{3}}:
xargs exits with the following status:
0 if it succeeds
123 if any invocation of the command exited with status 1-125
124 if the command exited with status 255
125 if the command is killed by a signal
126 if the command cannot be run
127 if the command is not found
1 if some other error occurred.
你想在这里完成什么?在这种情况下,我不明白为什么你需要xargs
。您应该直接致电dialog
,如下所示:
dialog --backtitle Patches \
--extra-button --extra-label "See File List" \
--title Patches --clear --ok-label Create --cancel-label Exit \
--menu "Please select:" $HEIGHT $WIDTH 25 "$gridData"
即使$gridData
包含特殊字符(例如"
或空格),这也会有用。