iselectを使用したスクリプトをqshdlgに置き換える
置き換え例
iselect版スクリプト
#!/bin/sh cat > list.txt <<"EOF" A<S:0> B<S:1> --- END<S:100> EOF TITLE=DEMO while [ 1 ] do ret=`iselect -t $TITLE < list.txt` case $ret in 0) TITLE="A" ;; 1) TITLE="B" ;; 100) exit 0 ;; esac done
qshdlg版スクリプトその1
#!/bin/sh qshdlg -M select & make_list() { echo 'item(QString,QString)' A 0 > /var/spool/qshdlg/control echo 'item(QString,QString)' B 1 > /var/spool/qshdlg/control echo 'label(QString)' '---' > /var/spool/qshdlg/control echo 'item(QString,QString)' END 100 > /var/spool/qshdlg/control echo 'showSelect()' > /var/spool/qshdlg/control } make_list while read ret < /var/spool/qshdlg/input do case $ret in 0) echo "title(QString)" A > /var/spool/qshdlg/control make_list ;; 1) echo "title(QString)" B > /var/spool/qshdlg/control make_list ;; 100) echo 'reject()' > /var/spool/qshdlg/control ;; esac done
qshdlg版スクリプトその2
#!/bin/sh qshdlg -M -v "0,1,,100" -l "A,B,---,END" select & while read ret < /var/spool/qshdlg/input do case $ret in 0) echo "title(QString)" A > /var/spool/qshdlg/control ;; 1) echo "title(QString)" B > /var/spool/qshdlg/control ;; 100) echo 'reject()' > /var/spool/qshdlg/control ;; esac done