- ベストアンサー
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
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
手元に SunOS 5.6 が無いので外しているかも知れませんが。 set argv = ( p1 p2 p3 ) source hoge.csh ではいかがでしょうか。cygwin の tcsh ではうまく行きました(source hoge.csh p1 p2 p3 でもうまく行ってしまいましたが…)。
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
$1 とか $argv[1] とかでうまくいかないかなぁ?
お礼
ご回答ありがとうございました。 お礼が遅くなりました。 hoge.shに実行権(+x)を与えて、 %hoge.sh p1 p2 p3 とやれば、$argvも、$1も取れるのですが、 %source hoge.sh p1 p2 p3 で実行させるときは上手くいきませんでした。
補足
ダメなんです。 例えば、 source hoge.csh p1 p2 p3 を実行させるときに、 hoge.cshの最初に echo $argv と書いてあっても何も表示されず、 if ("$1" == "") then echo "no param" else echo $1 endif の判定を入れていると、"no param"の表示の方に入ってしまうんです。
お礼
バッチリです! aliasで次のように宣言して使えています。 助かりました。ありがとうございました。 alias hoge 'set argv=(\!*) ; source ~/bin/hoge.csh'