MacOSXでbashを使用しています。
私はという名前のシェルファイルを持っており、myshell.sh
それを使って多くのことをしています。
以下を含むentry.shファイルがあります。
# content of entrance.sh
./myshell.sh arg1 arg2
./myshell.sh arg3 arg4
しかし、実行するentrance.sh
とエラーが発生しました:
./entrance.sh: line 2: myshell.sh: command not found
myshell.shを直接実行できます。
私に何ができる?
./myshell.sh
スクリプトmyshell.sh
が現在のディレクトリにあることを意味します。このスクリプトを別の場所から実行すると、機能しません。フルパスを使用することもできますが、この場合、賢明な解決策は次のとおりです。
の場所myshell.sh
をあなたに追加します$PATH
(場合によってmyshell.sh
は、実際にはどこからでも呼び出されることになっています)。したがって、PATH="$PATH":/dir/of/myshell
外部スクリプトの先頭に追加します。
myshell.sh
どこからでもアクセスできるようにどこかに置きます(システム上の他のすべての実行可能ファイルと同じように)。それが/usr/local/bin
最も可能性が高いでしょう。これは、このスクリプトが普遍的に役立つ場合にのみ使用してください。
スクリプトがディレクトリ内のローカルファイルに依存している場合(そして、他の場所から呼び出された場合に壊れて損傷する可能性もあります)、現在の形式のままにしておく必要があります(これにより、実際には、想定外の場所からスクリプトを呼び出すことができなくなります)、またはcd
スクリプト内で使用して適切な場所に移動します。以下のためのシェルスクリプトで絶対パスを使用して、注意してくださいcd
それは、何かがうまくいかないと、あなたが出て行けばものを破るには余りにも簡単で、..
かつcd
失敗でさらに-ing、あなたはすべての親ディレクトリの上にディレクトリと治世の混乱の脱出ができます。
ほとんどの場合、ソリューション#1をお勧めします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加