0

私はスクリプトを書くのが初めてで、行き詰まっています。私はsolarisシステムに取り組んでいます。

オペレーターが間違ったオプションを選択した場合 (たとえば、ドライブに DVD を入れたのに cdrom を選択した場合)、システムは次のように応答します。

「hsfs マウント: /dev/sr0 は hsfs ファイル システムではありません」

選択した fs が正しいかどうかを判断するために case ステートメントを変更する最も簡単な方法は何ですか (おそらくエラーメッセージからの入力を使用しますか?)、そうでない場合は、オペレーター入力を無効なオプションとして扱い、新しい選択を強制しますか?

#!/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 に答える