web-dev-qa-db-ja.com

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

それは非常に長い間私を悩ませてきました、そして私は本当にそれにうんざりしています。たとえば、2つのディレクトリを比較するtestscriptというスクリプトがあります。クラスでは、教授は単にタイプすることができます

testscript dir1 dir2

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

教授はそれをどのように行いましたか?それはbashrcのことで何かですか?私はそれがどのように機能するか決してわかりません。それが関連しているなら、私はLinuxが初めてなので、わかりやすい単純な言語で説明してください。ありがとうございました!

14
asura

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

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

または、PATHcurrentディレクトリを追加することもできます。

export PATH="$PATH:."

ただし、後者には セキュリティ上の欠点 があります。

12
jimmij

これを行う別の方法は、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 testscript='bash ./testscript.sh'

2
ryekayo

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

PATH=$PATH:.    

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

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

次に、新しいシェルを起動して機能させる必要があります

2
Yann Hourdel

考えられるもう1つの方法は、これらの特別な実行可能スクリプトとプログラムを1つのディレクトリに収集し、それをPATHステートメントに入れることです。したがって、恐ろしい「。」を使用する必要はありません。 (ドット)PATH変数内にありますが、それでも望みどおりの結果が得られます。

0
mdpc