• ベストアンサー

source実行時の引数の渡し方

SunOS 5.6を使っています。 cshのスクリプト(hoge.csh)を作成し、 %source hoge.csh p1 p2 p3 としたときに、 このスクリプトに引数p1,p2,p3をそれぞれ渡してやりたいのですが、上手く出来ません。(引数なし、と解釈されてしまう) 良い方法が無いでしょうか? よろしくお願いします。 関連 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1969769

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

 手元に SunOS 5.6 が無いので外しているかも知れませんが。 set argv = ( p1 p2 p3 ) source hoge.csh ではいかがでしょうか。cygwin の tcsh ではうまく行きました(source hoge.csh p1 p2 p3 でもうまく行ってしまいましたが…)。

supob
質問者

お礼

バッチリです! aliasで次のように宣言して使えています。 助かりました。ありがとうございました。 alias hoge 'set argv=(\!*) ; source ~/bin/hoge.csh'

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

$1 とか $argv[1] とかでうまくいかないかなぁ?

supob
質問者

お礼

ご回答ありがとうございました。 お礼が遅くなりました。 hoge.shに実行権(+x)を与えて、 %hoge.sh p1 p2 p3 とやれば、$argvも、$1も取れるのですが、 %source hoge.sh p1 p2 p3 で実行させるときは上手くいきませんでした。

supob
質問者

補足

ダメなんです。 例えば、 source hoge.csh p1 p2 p3 を実行させるときに、 hoge.cshの最初に echo $argv と書いてあっても何も表示されず、 if ("$1" == "") then echo "no param" else echo $1 endif の判定を入れていると、"no param"の表示の方に入ってしまうんです。