mkdir command not found in bash script

40,259

Solution 1

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.

Solution 2

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.

Share:
40,259
MLSC
Author by

MLSC

Updated on August 05, 2022

Comments

  • MLSC
    MLSC almost 2 years

    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