cshでCase Switchステートメントを実行する方法

cshでCase Switchステートメントを実行する方法

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

おすすめ記事