By: Vivek G in Linux Tutorials on 2011年01月29日 [フレーム]
This shell script shows how to script menu-based programs in linux. This sample program implements menus using dialog utility. Menu-items and action according to select menu-item is as follows:
show_datetime()
{
dialog --backtitle "Linux Shell Tutorial" --title "System date and Time" --infobox "Date is `date`" 3 40
read
return
}
show_cal()
{
cal > menuchoice.temp.$$
dialog --backtitle "Linux Shell Tutorial" --title "Calender" --infobox "`cat menuchoice.temp.$$`" 9 25
read
rm -f menuchoice.temp.$$
return
}
delete_file()
{
dialog --backtitle "Linux Shell Tutorial" --title "Delete file"\
--inputbox "Enter directory path (Enter for Current Directory)"\
10 40 2>/tmp/dirip.$$
rtval=$?
case $rtval in
1) rm -f /tmp/dirip.$$ ; return ;;
255) rm -f /tmp/dirip.$$ ; return ;;
esac
mfile=`cat /tmp/dirip.$$`
if [ -z $mfile ]
then
mfile=`pwd`/*
else
grep "*" /tmp/dirip.$$
if [ $? -eq 1 ]
then
mfile=$mfile/*
fi
fi
for i in $mfile
do
if [ -f $i ]
then
echo "$i Delete?" >> /tmp/finallist.$$
fi
done
dialog --backtitle "Linux Shell Tutorial" --title "Select File to Delete"\
--menu "Use [Up][Down] to move, [Enter] to select file"\
20 60 12 `cat /tmp/finallist.$$` 2>/tmp/file2delete.tmp.$$
rtval=$?
file2erase=`cat /tmp/file2delete.tmp.$$`
case $rtval in
0) dialog --backtitle "Linux Shell Tutorial" --title "Are you shur"\
--yesno "\n\nDo you want to delete : $file2erase " 10 60
if [ $? -eq 0 ] ; then
rm -f $file2erase
if [ $? -eq 0 ] ; then
dialog --backtitle "Linux Shell Tutorial"\
--title "Information: Delete Command" --infobox "File: $file2erase is Sucessfully deleted,Press a key" 5 60
read
else
dialog --backtitle "Linux Shell Tutorial"\
--title "Error: Delete Command" --infobox "Error deleting File: $file2erase, Press a key" 5 60
read
fi
else
dialog --backtitle "Linux Shell Tutorial"\
--title "Information: Delete Command" --infobox "File: $file2erase is not deleted, Action is canceled, Press a key" 5 60
read
fi
;;
1) rm -f /tmp/dirip.$$ ; rm -f /tmp/finallist.$$ ;
rm -f /tmp/file2delete.tmp.$$; return;;
255) rm -f /tmp/dirip.$$ ; rm -f /tmp/finallist.$$ ;
rm -f /tmp/file2delete.tmp.$$; return;;
esac
rm -f /tmp/dirip.$$
rm -f /tmp/finallist.$$
rm -f /tmp/file2delete.tmp.$$
return
}
while true
do
dialog --clear --title "Main Menu" \
--menu "To move [UP/DOWN] arrow keys \n\
[Enter] to Select\n\
Choose the Service you like:" 20 51 4 \
"Date/time" "To see System Date & Time" \
"Calender" "To see Calaender"\
"Delete" "To remove file"\
"Exit" "To exit this Program" 2> menuchoice.temp.$$
retopt=$?
choice=`cat menuchoice.temp.$$`
rm -f menuchoice.temp.$$
case $retopt in
0)
case $choice in
Date/time) show_datetime ;;
Calender) show_cal ;;
Delete) delete_file ;;
Exit) exit 0;;
esac
;;
1) exit ;;
255) exit ;;
esac
done
clear
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Most Viewed Articles (in Linux )
make: Nothing to be done for `all'.
Running jar files in background in ssh window
How to burn your CD / DVD ISO image using Nero Burning ROM (Ahead Software) on Windows
smskannel SMS gateway run in background
Can't locate ExtUtils/MakeMaker.pm in @INC ...
Could not open '': No such file or directory at lib/ExtUtils/MM_Unix.pm line 2697
Install and configure Memcached in linux
How to burn your CD / DVD ISO image using Media Creator (Adaptec/Roxio) on Windows
How to burn your CD / DVD ISO image using Nero Express (Ahead Software) on Windows
Latest Articles (in Linux)
smskannel SMS gateway run in background
Running jar files in background in ssh window
Install and configure Memcached in linux
Can't locate ExtUtils/MakeMaker.pm in @INC ...
Could not open '': No such file or directory at lib/ExtUtils/MM_Unix.pm line 2697
make: Nothing to be done for `all'.
How to burn your CD / DVD ISO image using Nero Burning ROM (Ahead Software) on Windows
How to burn your CD / DVD ISO image using Media Creator (Adaptec/Roxio) on Windows
How to burn your CD / DVD ISO image using Nero Express (Ahead Software) on Windows
How to burn your CD / DVD ISO image using k3b on CentOS
smskannel SMS gateway run in background
Running jar files in background in ssh window
Install and configure Memcached in linux
Can't locate ExtUtils/MakeMaker.pm in @INC ...
Could not open '': No such file or directory at lib/ExtUtils/MM_Unix.pm line 2697
make: Nothing to be done for `all'.
How to burn your CD / DVD ISO image using Nero Burning ROM (Ahead Software) on Windows
How to burn your CD / DVD ISO image using Media Creator (Adaptec/Roxio) on Windows
How to burn your CD / DVD ISO image using Nero Express (Ahead Software) on Windows
How to burn your CD / DVD ISO image using k3b on CentOS
© 2023 Java-samples.com
Tutorial Archive: Data Science React Native Android AJAX ASP.net C C++ C# Cocoa Cloud Computing EJB Errors Java Certification Interview iPhone Javascript JSF JSP Java Beans J2ME JDBC Linux Mac OS X MySQL Perl PHP Python Ruby SAP VB.net EJB Struts Trends WebServices XML Office 365 Hibernate
Latest Tutorials on: Data Science React Native Android AJAX ASP.net C Cocoa C++ C# EJB Errors Java Certification Interview iPhone Javascript JSF JSP Java Beans J2ME JDBC Linux Mac OS X MySQL Perl PHP Python Ruby SAP VB.net EJB Struts Cloud Computing WebServices XML Office 365 Hibernate