重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

シェルには種類がありユーザーはそれを切り替えることによって好みのシェルを自由に選択することが出来る。
というのはわかりました。

が、シェルスクリプトを記述して実行する場合はどうなんでしょう。
bornシェルで記述したシェルスクリプトをcshから実行できるのでしょうか。
実行者とスクリプト記述者が同じシェル環境で操作しないといけないのかと思い質問しています。

ひょっとして意味のわからない質問かも知れませんがお願いします。

A 回答 (3件)

#2さんのヒントから解決するかもしれませんが、補足します。



シェルスクリプトを書く際に以下の2つの条件を満たせば
現在使用中のシェルにかかわらず、
スクリプトを処理するシェルを指定することが出来ます。

(1)シェルスクリプトファイルの1行目を「#! /bin/sh」とする。
/bin/shの部分にそのスクリプトで使用するシェルを指定します。
また必ずフルパスで書く必要があります。
(2)シェルスクリプトファイルのパーミッションに実行権限(x)を
付ける。(例:「chmod 755 hoge.sh」)

また、蛇足ですが、上記のようにしなくても、
「sh hoge.sh」のようにすれば、入力文字数は増えますが、
実行するシェルは実行時に指定できます。

>cat hoge.sh (←shでは動くが、cshでは動かないスクリプトです。)
#! /bin/sh
if [ -x /bin/sh ] ; then
echo "/bin/sh exist"
fi
>ls -l hoge.sh (←実行権限(x)がついていることを確認します。)
-rwxr-xr-x 1 yamakawa yamakawa 61 12 27 13:06 hoge.sh*
>./hoge.sh
/bin/sh exist
>sh hoge.sh
/bin/sh exist
>csh hoge.sh
if: Expression Syntax.
    • good
    • 0
この回答へのお礼

はー、なるほど。よくわかりました。
面白いですね。
こちらに実行環境があればよかったのですが、
それがなかったのでお聞きしました。

ホントに有難うございました。

お礼日時:2006/12/27 13:45

ヒント



#! /bin/sh
    • good
    • 0

>bornシェルで記述したシェルスクリプトをcshから実行できるのでしょうか。



文法が違うのでやめておいた方がよいでしょう。
そもそもスクリプトで実行する場合、対話的でもないので
わざわざ違うshを指定する必要もないし。
    • good
    • 0
この回答へのお礼

わざわざといわれてしまったらそれまでですね・・・。
お聞きしたかったのは、
1.現場環境として完全にシェルが統一されていているのか
2.別シェルが入り込む余地があるのか
ってことなんです。
現場で聞けって話になっちゃいますけど、ここで聞いちゃいますw

お礼日時:2006/12/27 12:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!