別のbashジョブスクリプトがあります。これは壊れています:
#!/bin/bash
PATH=/home/name/
mkdir $PATH
cd $PATH && echo "done."
exit 0
今日問題が発生しました。初めてCDを実行せずにディレクトリを作成しました。第二に、「mkdirコマンドが見つかりません」と言いました。セミコロンを使用してこのコマンドを完全に実行しても問題はありません。どうしたの?
答え1
PATH
環境変数です。シェルはそれを使用して実行したいコマンドを見つけます。より正確には、PATH
環境変数には、コマンドの入力時に指定した名前の実行可能ファイルを見つけるために検索される、コロンで区切られたディレクトリ名のリストが含まれています。 (もちろん、入力したコマンドがシェル組み込み、エイリアス、または関数ではない場合。)
これをスクリプトで設定すると、PATH
環境変数の値が同じ名前のシェル変数で「マスク」されます。
これから導き出された結論は通常のシェル変数には大文字の名前を使用しないでください。
環境変数は必要ありませんので、変数名を小文字にしてください。
また見なさい:
答え2
Bashでインストールされたプログラムを見つける場所をPATH
示す特別な変数です。バイナリがbash
ない場合は、設定後に出力する必要があります。この問題を解決するには、別の変数名を使用します。mkdir
/home/name/
mkdir: command not found
PATH