Shでは、次のことができることがわかります。
#!/sbin/sh
case "$1" in
'foo')
/path/to/foo.sh
;;
'bar')
/path/to/bar.sh
;;
*)
echo $"Usage: $0 {foo|bar}"
exit 1
;;
esac
インターネット全体を検索しましたが、上記の操作に一致する対応するスイッチステートメントが見つからないようです。
さらに進む前に、私はcshを使用してはいけませんが、cshでのみ実行される古いアプリケーションがあることを知っています。これに対してSolaris SMFサービスを構築しようとしてシェルを設定しようとしましたが、メソッドファイルで使用されているすべてのシェルは実際のSMFシェルをオーバーライドします。したがって、cshにする必要があります。
助けてくれてありがとう。
長すぎます。(上記の内容をcshに変換するには?)
答え1
C-Shellの欠点を理解してくれて嬉しいです。
これはCシェルに変換されたのと同じスクリプトです(編集する$usage
:引数がない場合、または引数が1つ以上の場合は出力に更新されます):
#!/usr/bin/env csh
set usage="Usage: $0 {foo|bar}"
if ( $#argv != 1 ) then
echo $usage
else
switch ($argv[1])
case 'foo':
/path/to/foo.sh
breaksw
case 'bar':
/path/to/bar.sh
breaksw
default:
echo $usage
breaksw
endsw
endif