2016-06-17 14 views
1

binフォルダーに.shファイルがありますが、使用しようとするとサーバーはそのフォルダー内でファイルを見つけることができません。特定のフォルダにコマンドが見つからないのはなぜですか?

/home/monju/full/app/bin $ls 
checkServer.sh etf_disagg_config_loader.sh getLogName.sh mapr 
common.sh  findLog.sh     jgrouplog.sh phase2b 
commonStart.sh findServer.sh    jmx   postInstallSetup.sh 
errorLog.ksh followLog.sh     jrebel.sh  probe.sh 
etf    genTestFile.ksh    killServer.sh RMSDisable.sh 
/home/monju/full/app/bin $stopServer.sh 
bash: stopServer.sh: command not found 

/home/monju/full/app/bin/stopServer.shを使用すると、それを使用することができます。それが意味するものではありませんbinという名前のディレクトリにありますので、

答えて

8

ただ、シェルは魔法のようにそれを見つけることができます。

環境変数$PATHに絶対パスを入力するか、すでに$PATHのどこかにシンボリックリンクする必要があります。もちろん、あなたがだけカレントディレクトリからそれを実行したい場合は、それだけでどこの相対パス構文を使用して、あなたが与えた長い絶対パスと同じである

$ ./stopServer.sh 

を使用するのが最善

をです.は、現在のディレクトリを意味します。 $PATH.自体を置く

が悪い習慣とみなされ、私は思います。

+1

あなたは正しく思います。 :) – Barmar

+0

標準検索パスを使用する前に、現在のディレクトリ内のものが選択されるので、 '$ PATH'の前にそれを置くことは*余分な*悪い習慣です。 – Kusalananda

3

使用

./stopServer.sh 

し、実行権限を持っていることを確認してください。

関連する問題