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

Linux初級者です。よろしくお願いします。
OSにFedora Core 10, シェルにtcshを使用しています。

よく使用するコマンドを、まとめて一括で実行するように、
新しいコマンドを作成したくて、次のようなことをしていたのですが

(1)ホームディレクトリにmybinというディレクトリを作成してPATHを通す。
(2)newbin1という以下の内容のシェルスクリプトを作成して、~/mybinに置いておく。
==================================
#!/bin/tcsh -f

date #実行コマンド例1
echo $PATH #実行コマンド例2
==================================
(3)chmodコマンドでファイルに実行権限を与える。


上記のような方法で、作成したシェルスクリプト(newbin1)を
PATHの通ったディレクトリ(~/mybin)に置いて、
> newbin1
とコマンドを呼び出しても、
"newbin1: コマンドが見つかりません"
というエラーになってしまいます。

> which newbin1
とすると、ちゃんとファイルのパスが表示されるのですが、

***********************************************************
自分で作成したシェルスクリプト(newbin1)を、
新しいコマンドとして認識させるにはどのようにすればよいのでしょうか。
また、そもそもシェルスクリプトを新しいコマンドにすることが
不可能だったりするんでしょうか?
************************************************************

一括で実行したいコマンドが多い場合に、aliasで割り当てるのが大変なので、
できればaliasコマンドは使わずにできる方法を探しています。
基本的な質問かもしれませんが、よろしくお願い致します。

A 回答 (1件)

~/mybin/newbin1


に実行権限のあるファイルをおいた直後(loginしなおさない)であれば
rehashコマンドを実行して、パスに通ったファイルを再学習させる必要があります。

なお、使っているシェルが、cshやtcsh系の場合はrehashが必要ですが、
bashの場合は不要です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
その上で大変申し訳ないのですが、原因が私のケアレスミスであったことがわかりました。

シェルスクリプト内の一行目
#!/bin/tcsh -f
とするところを
#!bin/tcsh -f
としており、
tcshコマンド自体が認識されていなかったことが原因でした。

大変ご迷惑おかけしまして申し訳ありませんでした。

お礼日時:2011/12/15 11:25

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