この単純なスクリプトの実行中にエラーが発生する理由がわかりません。
#!/bin/bash
read -p "Please enter directory name: " DIR
read -p "Please enter the path: " PATH
mkdir -p "$PATH/$DIR"
line 7: mkdir: command not found
変数PATH
は使用しないでください。この変数には、実行可能プログラムを検索するためのディレクトリのリストが含まれています。置き換えているため、スクリプトはmkdir
プログラムを見つけることができません。
一般に、すべて大文字の変数は使用しないでください。これらは、シェルまたは他のプログラムのパラメーターとしてよく使用されます。
変数PATH
は重要な環境変数です。これは、プログラム(mkdir
など)が見つかり、上書きする方法です。あなたはそれをすべきではありませんが、そうする必要がある場合は:
/bin/mkdir -p "$PATH/$DIR"
ただし、正直に大文字は使用しないでください。 Bashにはたくさんの予約済み変数または特殊変数があり、それらをすべて思い出せない場合は、1つを除いてすべて大文字であることに注意してください。 Bashの変数は、すべての賢明なプログラミング言語と同様に、大文字と小文字を区別します。