./ を入力せずに bash スクリプトを実行する方法

./ を入力せずに bash スクリプトを実行する方法

長い間、私はそれに悩まされてきましたが、本当にうんざりしています。たとえば、2つのディレクトリを比較するtestscriptというスクリプトがあります。授業で教授は次のように入力するだけで済みます。

testscript dir1 dir2

出力を取得するには、テストスクリプトの前に./を追加してEnterキーを押す必要があります。次に、次の行にdir1とdir2を入力します。

教授はどうやってそれをやったのですか? bashrc に関することでしょうか? 仕組みがまったくわかりません。関連しているのであれば、Linux 初心者なので、わかりやすい簡単な言葉で説明してください。ありがとうございます!

答え1

スクリプトを含むディレクトリをPATH変数に追加する必要があります:

export PATH="$PATH:/path/to/dir"

または追加することもできます現在ディレクトリを次の場所にPATH:

export PATH="$PATH:."

後者にはセキュリティ上の欠点けれど。

答え2

これを行う別の方法は、bashrc ファイルにエイリアスを追加することです。

vim ~/.bashrc

私の bashrc ファイルは次のようになります:

# .bashrc

alias coredb='psql -h 172.x.x.x -U jboss jbossdb'
alias psql='psql -h 172.x.x.x -U rkah portal_db'
alias opendb='psql -h 172.x.x.x -U rkah portal_db'


# Source global definitions

if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
alias menu='bash ./menuScript.sh'
alias vi='vim'

alias と書かれているところを見ると、まさにその方法で追加できることがわかります。たとえば、次のように入力します。

alias testscript='bash ./testscript.sh'

答え3

ファイルの最後に次の行を追加する必要があります.bashrc

PATH=$PATH:.    

これを行うには、次のコマンドを入力します。

echo "PATH=$PATH:." >> ~/.bashrc    

その後、新しいシェルを起動して動作させる必要があります

答え4

他に考えられる方法としては、特別な実行可能スクリプトとプログラムを 1 つのディレクトリに集めて、それを PATH ステートメントに配置することです。こうすれば、PATH 変数で恐ろしい「.」(ドット) を使用する必要がなくなりますが、それでも必要な処理は実行されます。

関連情報