我试图弄清楚为什么在下面的对话框脚本中按下cancel键时总是会出现错误Unexpected }。
在脚本方面,我完全是个菜鸟。
#!/bin/sh
hdd=`fdisk -l | grep ^Disk | awk -F: "{ print $1 }"`
function dialog_menu {
dialog --title "Disktest" --menu "$hdd" 16 60 7 \
"badblocks -sv /dev/sda" "Read test on /dev/sda" \
"badblocks -wsv /dev/sda" "Read/Write test on /dev/sda" \
"badblocks -sv /dev/sdb" "Read test on /dev/sdb" \
"badblocks -wsv /dev/sdb" "Read/Write test on /dev/sdb" \
"badblocks -sv /dev/sdc" "Read test on /dev/sdc" \
"badblocks -wsv /dev/sdc" "Read/Write test on /dev/sdc" \
Exit "Exit disk test" 2>~/tmp ;
menuitem=`cat ~/tmp`
opt=$?
case $menuitem in
"badblocks -sv /dev/sda") var=`badblocks -sv /dev/sda`;
read;
dialog_menu ;;
"badblocks -wsv /dev/sda") var=`badblocks -wsv /dev/sda`;
read;
dialog_menu ;;
"badblocks -sv /dev/sdb") var=`badblocks -sv /dev/sdb`;
read;
dialog_menu ;;
"badblocks -wsv /dev/sdb") var=`badblocks -wsv /dev/sdb`;
read;
dialog_menu ;;
"badblocks -sv /dev/sdc") var=`badblocks -sv /dev/sdc`;
read;
dialog_menu ;;
"badblocks -wsv /dev/sdc") var=`badblocks -wsv /dev/sdc`;
read;
dialog_menu ;;
Exit) clear;
echo "Usage: badblocks -[w]sv /dev/[DEVICE]";
echo "$hdd";
exit;;
esac
clear
}
dialog_menu
rm ~/tmp我很高兴能得到任何帮助!
发布于 2014-09-09 12:21:09
好的,在我把这个问题发送进来后,我自己就想好了,不,}应该在函数结束后就在那里。我刚刚在esac行之后添加了另一个"exit“行,它起了作用。不管怎样,谢谢你的帮助
https://stackoverflow.com/questions/25744279
复制相似问题