Created
June 23, 2019 00:35
使用 Linux Dialog 图形化 Shell
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!bin/bash | |
yesno() { | |
dialog --title "First screen" --backtitle "Test Program" --clear --yesno \ | |
"Start this test program or not ? \nThis decesion have to make by you. " 16 51 | |
# yes is 0, no is 1 , esc is 255 | |
result=$? | |
if [ $result -eq 1 ] ; then | |
exit 1; | |
elif [ $result -eq 255 ]; then | |
exit 255; | |
fi | |
username | |
} | |
username() { | |
cat /dev/null >/tmp/test.username | |
dialog --title "Second screen" --backtitle "Test Program" --clear --inputbox \ | |
"Please input your username (default: hello) " 16 51 "hello" 2>/tmp/test.username | |
result=$? | |
if [ $result -eq 1 ] ; then | |
yesno | |
elif [ $result -eq 255 ]; then | |
exit 255; | |
fi | |
password | |
} | |
password() { | |
cat /dev/null >/tmp/test.password | |
dialog --insecure --title "Third screen" --backtitle "Test Program" --clear --passwordbox \ | |
"Please input your password (default: 123456) " 16 51 "123456" 2>/tmp/test.password | |
result=$? | |
if [ $result -eq 1 ] ; then | |
username | |
elif [ $result -eq 255 ]; then | |
exit 255; | |
fi | |
occupation | |
} | |
occupation() { | |
cat /dev/null >/tmp/test.occupation | |
dialog --title "Forth screen" --backtitle "Test Program" --clear --menu \ | |
"Please choose your occupation: (default: IT)" 16 51 3 \ | |
IT "The worst occupation" \ | |
CEO "The best occupation" \ | |
Teacher "Not the best or worst" 2>/tmp/test.occupation | |
result=$? | |
if [ $result -eq 1 ] ; then | |
password | |
elif [ $result -eq 255 ]; then | |
exit 255; | |
fi | |
finish | |
} | |
finish() { | |
dialog --title "Fifth screen" --backtitle "Test Program" --clear --msgbox \ | |
"Congratulations! The test program has finished!\n Username: $(cat /tmp/test.username)\n Password: $(cat /tmp/test.password)\n Occupation: $(cat /tmp/test.occupation)" 16 51 | |
result=$? | |
if [ $result -eq 1 ] ; then | |
occupation | |
elif [ $result -eq 255 ]; then | |
exit 255; | |
fi | |
} | |
yesno |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# vim gauge.sh | |
declare -i PERCENT=0 | |
( | |
for I in /etc/*;do | |
if [ $PERCENT -le 100 ];then | |
cp -r $I /tmp/test 2> /dev/null | |
echo "XXX" | |
echo "Copy the file $I ..." | |
echo "XXX" | |
echo $PERCENT | |
fi | |
let PERCENT+=1 | |
sleep 0.1 | |
done | |
) | dialog --title "coping" --gauge "starting to copy files..." 6 50 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment