0

我是脚本新手,陷入僵局。我正在开发一个solaris系统。

如果操作员选择了错误的选项(例如,在驱动器中放置了 dvd,但选择了 cdrom),系统会做出以下响应:

“hsfs 挂载:/dev/sr0 不是 hsfs 文件系统”

修改 case 语句以确定所选 fs 是否正确(可能使用来自错误消息的输入?)的最简单方法是什么,如果不正确,则将操作员输入视为无效选项以强制进行新选择?

#!/bin/bash

clear
echo " Please select media type (1,2) or quit (3):"
options=("CDROM" "DVD" "Quit")
select opt in "${options[@]}"
do
 case $opt in 
      "CDROM")
           echo "Mounting CDROM"
           mount -F hsfs -r /dev/sr0 /cdrom
           break
           ;;
      "DVD")
           echo "Mounting DVD"
           mount -F udfs -r /dev/sr0 /cdrom
           break
           ;;
      "Quit")
           break
           ;;
      *) echo Invalid Option.;;
  esac
done

感谢您的时间。

4

1 回答 1

0

这应该有效(尽管未经测试):

#!/bin/bash

clear
echo " Please select media type (1) or quit (2):"
options=("CDROM/DVD" "Quit")
select opt in "${options[@]}"
do
 case $opt in 
      "CDROM/DVD")
           echo "Mounting CDROM/DVD"
           fstyp=$(fstyp /dev/sr0)
           case "$fstyp" in
               [hu][sd]fs)
                   mount -F $(fstyp /dev/sr0) -r /dev/sr0 /cdrom ;;
               "*") echo "Invalid media" ;;
           esac 
           break
           ;;
      "Quit")
           break
           ;;
      *) echo Invalid Option.;;
  esac
done
于 2013-10-01T16:08:27.987 回答