Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

mkdir command not found in bash script

Tags:

I don't know why I get error while running this simple script:

#!/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 
like image 987
MLSC Avatar asked Apr 23 '15 14:04

MLSC


2 Answers

Don't use the variable PATH. This variable contains a list of directories to search for executable programs. Since you're replacing it, the script can no longer find the mkdir program.

In general, avoid using variables that are all uppercase, these are often used as parameters for the shell or other programs.

like image 58
Barmar Avatar answered Sep 30 '22 14:09

Barmar


The variable PATH is an important environment variable - it is the way that programs (like mkdir) are found, and you are overwriting it. You shouldn't do that, but if you must then:

/bin/mkdir -p "$PATH/$DIR" 

but honestly DON'T USE UPPERCASE! There are loads of reserved or special variables in Bash, and if you can't remember them all then just remember that all except one is in UPPERCASE. Variables in Bash are case-sensitive, like in all sensible programming languages.

like image 26
cdarke Avatar answered Sep 30 '22 13:09

cdarke