Re: [問題] Shell Script如何讀dialog的回傳值?
※ 引述《darkgerm.bbs@ptt.cc (黑駿)》之銘言:
> 小弟正在學寫 Shell Script
> 想用 dialog 畫出互動介面
> 所以寫了下面這行:
> dialog --menu "MENU" 9 20 2 1 op1 2 op2
> 選完後應該會回傳我選的 tag
> 所以我就寫:
> tag=$(dialog --menu "MENU" 9 20 2 1 op1 2 op2)
> 結果卻跑不動...執行到這行就像死掉一樣
> 隨便按一鍵就會出現壞掉的menu,而且 tag 也沒有正常讀入0.0
> 到底要怎麼讀到 dialog 的回傳值??
> 謝謝>"<
參考 dialog 的範例 (可能在 /usr/share/doc/dialog/ 中,各 distro
可能會略有不同),應該可以找到答案。
方法一:
#!/bin/bash
tag=$(dialog --menu "MENU" 9 20 2 1 op1 2 op2 2>&1 1>&3)
status=$?
case $status in
0)
echo "tag=${tag}";;
1)
echo "cancel pressed";;
esac
方法二:
dialog --menu "MENU" 9 20 2 1 op1 2 op2 2>answer
status=$?
tag=$(cat answer)
case $status in
0)
echo "tag=${tag}";;
1)
echo "cancel pressed";;
esac
其餘細節請參考 dialog 文件中的範例 script 以及 manpage。
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: c-76-111-34-186.hsd1.ga.comcast.net
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 2 之 4 篇):