アプリ版:「スタンプのみでお礼する」機能のリリースについて

シェルスクリプトを勉強しております。

testと名付けたファイルに
スクリプトの構文の頭に#!/bin/tcshを記入せず
setenv(csh系だけで動くコマンド)のみを記載して
実行権を与えて ./test と打つと
etenv: command not found になってしまいます。

ここで、やりたいことは文頭にシェルを指定せずに
実行をすると、現在のtcsh上で実行されるはずなのに
setenv: command not found になってしまうところに疑問がございます。
ログインシェルをtcshに変えたりも試してみても
疑問が解決しないので、なにかアドバイス等でもいただけないでしょうか。よろしくお願い致します。

A 回答 (3件)

その参考書の書名と出版社をよければ教えて貰えませんか。



シェルスクリプトをどのシェルで実行するかは、ここ30年間くらいでいろいろと変遷してきています。過去にはいろいろな方式がありましたが、、。
対話シェルは各人が趣味で選んで良いのですが、シェルスクリプトは/bin/sh(あるいはその上位互換のbash)で書くのが常識です。そのため、にシェルを指定しているのでなければ、/bin/shが使われます。

この回答への補足

書名> わかる&使えるUNIX基礎講座 (シェルスクリプト編)
出版社> 技術評論社
P25の第1の方法の欄にデフォルトシェルが起動すると記述されておりました。
ただし、この本ではデフォルトのシェル=ログインシェルとは記述されてはおりません。

補足日時:2006/07/17 21:39
    • good
    • 0

取りあえずbash系でも環境変数の設定は出来ますけど?



cshの場合
setenv TEST 01

bashの場合
TEST=01; export TEST

http://x68000.q-e-d.net/~68user/unix/environment …
と言うことなんですが、、お呼びじゃなかったですか、そうですか
    • good
    • 0

「文頭にシェルを指定せずに


実行をすると、現在のtcsh上で実行されるはず」
というのはどこから仕入れた情報ですか?

先頭に#!がなければ、/bi/shが動くはずですが。
    • good
    • 0
この回答へのお礼

>「文頭にシェルを指定せずに
>実行をすると、現在のtcsh上で実行されるはず」

これについては、デフォルトのシェルで実行されると
シェルスクリプトの参考書に書いてあったのですが
デフォルトシェルについての詳細が書いてなかったので
ググッて見たらデフォルトシェル=ログインシェルになると調べた結果です。
回答ありがとうございました。

お礼日時:2006/07/17 00:23

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