mm
次のスクリプトがあるとしますdir1
。
#Contents of mm
echo "Hello Main!"
./hd
私のパスワードはですdir2
。次に、次を実行しますmm
。
$ ../dir1/mm
hd
と呼ばれるdir1
実行可能ファイルがありますdir2
。私はそれを試してhd
実行しdir2
ました。hd
で実行しないのはなぜですかdir1
?
答え1
これは、ファイルを実行してもプロセスの現在の作業ディレクトリがファイルディレクトリに変更されないためです。
実行ファイルは、実行後にオプションで実行できます。たとえば、私は時々これを行います。
cd "$(dirname "$0")"
私のスクリプトでは、現在の作業ディレクトリが実行可能ファイルディレクトリであることを確認していますが、そうする義務はありません。