OS:AIX 7.1
私は、ユーザーがいくつかのコマンドを入力して実行できるシェルスクリプトを作成しています。コマンドの1つは次の形式を取ります。
compile appname
アプリケーション名は[ccms | asws]のうちの1つのみです。 Caseステートメントでこれを一致させる正しいパターンは何ですか?
これは私のシェルスクリプトです。
while true
do
read cmd
case $cmd in
"compile(\s)(ccms)|(asws)") compile
;;
*) break
;;
esac
done
compile(){
...
}
答え1
read
コマンドを分割します。
read cmd arguments
case $cmd in
compile)
…
;;
esac
答え2
これはすべてのPOSIX互換シェルで機能します。
case $cmd in
"compile ccms"|"compile asws") compile
;;
*) break
;;
esac