スクリプトとシェルのパスの違い


2

スクリプトで実行した場合と端末から$ PATHを実行した場合で、$ PATHの出力が異なるのはなぜですか?このような最小限のスクリプトでも:

#!/bin/bash
echo $PATH

ターミナルで$ PATHを入力したときに得られるものとは一致しません。このため、「コマンドが見つかりません」と表示され続けます。どうすればこれを修正できますか?私はOSX High Sierraを使っています。


さて、 "export PATH"は私の問題の一部を解決したようです。私が使用しているプログラムの一つは動的リンクされています。何らかの理由で、エクスポートパスがあっても「dyld:Library not loaded」と表示されます。スクリプトから呼び出されたとき、少なくとも今すぐプログラムがパスにあります。 「export PATH」は何をするのですか?また、ライブラリパスもどのように含めることができますか?


1
どこからスクリプトを実行しますか。
nohillside

1
たとえばbash ./scriptと入力してシェルを起動します。
lenzinho

1
からの結果は何ですか - /usr/bin/grep PATH "$HOME/.bashrc"
fd0

1
走っただけで何が起こる? ./script (が必要な場合があります chmod +x script 最初)?
nohillside

1
あなたのスクリプトの内容を教えてください。また、単に$ PATHと入力するのではなく、もっと似たようなものにしてください。 echo "$PATH" または env | grep -i "PATH" - シェルがコマンドとして実行しようとしているのとは対照的に、変数PATHの内容が表示されます。また、使用しているシェルを見てみましょう。 env | grep -i shell。あなたのスクリプトがあなたの環境変数を継承していないように聞こえますが、それはそれほど予想外のIMOではありません。
Harv
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.