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
それがあなたにも失敗することがわかります。