サブディレクトリからスクリプトを実行するには、PATHにディレクトリを追加します。

サブディレクトリからスクリプトを実行するには、PATHにディレクトリを追加します。

PATH私はUbuntuを使用しており、私のスクリプトを含むサブフォルダを含むフォルダにフォルダを追加したいと思います。

私のフォルダのパスは次のとおりです。

/opt/tools/utils/my_script.sh

/opt/tools/steps/my_script.sh

他のスクリプトもありますが、私の焦点は次のとおりです。my_script.sh

以下を実行するリポジトリに複製されたスクリプトがあります。 export PATH=$PATH:/opt/tools次に、を呼び出しますutils/my_script.sh。これは私のコンピュータではうまく機能しますが、同僚のコンピュータではこれはutils/my_script.shファイルやディレクトリではないと言います。この問題をどのように解決しますか?

答え1

そのようなことは起こりませんでしたPATH。親ディレクトリを追加すると、単に子ディレクトリを呼び出すことはできません。

$ cat ~/foo/bin/bar.sh 
#!/bin/sh 
echo yeh!

~/foo今私のエントリに追加すると、次のようにPATHスクリプトを呼び出すことはできませんbin/bar.sh

$ PATH="~/foo:$PATH"
$ bin/bar.sh
bash: bin/bar.sh: No such file or directory

すでに参加している場合にのみこれを実行できます~/foo

$ cd ~/foo/
$ bin/bar.sh
yeh!

ディレクトリ内のファイルを使用可能にする正しい方法は、PATHディレクトリの親ディレクトリだけでなく、ディレクトリ自体を追加することです。

PATH="~/foo/bin:$PATH"

bar.shこれでどこからでも電話をかけることができます。

$ cd /
$ bar.sh
yeh!

つまり、お使いのコンピュータでも実行されません。あなたはutils/my_script.sh脱出したこと間違いありません/opt/tools。試してみるcd /と、utils/my_script.shそれがあなたにも失敗することがわかります。

関連情報