Bash variable assignment and command not found

64,655

Solution 1

Try this (notice I have removed the spaces from either side of the =):

#!/bin/bash
J="4"
FACE_NAME="eig$J.face"
USER_DB_NAME="base$J.user"

Bash doesn't like spaces when you declare variables - also it is best to make every value quoted (but this isn't as essential).

Solution 2

It's a good idea to use braces to separate the variable name when you are embedding a variable in other text:

#!/bin/bash
J=4
FACE_NAME="eig${J}.face"
USER_DB_NAME="base${J}.user"

The dot does the job here for you but if there was some other character there, it might be interpreted as part of the variable name.

Solution 3

dont' leave spaces between "="

J=4
FACE_NAME="eig${J}.face"
USER_DB_NAME="base${J}.user"
Share:
64,655
CJ.
Author by

CJ.

Updated on May 15, 2020

Comments

  • CJ.
    CJ. about 4 years

    I have a shell script that will let me access global variables inside the script, but when I try to create my own, it responds with: command not found.

    #!/bin/bash
    J = 4
    FACE_NAME = "eig$J.face"
    USER_DB_NAME = "base$J.user"
    

    When I run the above script I get:

    ./test1.sh line 2: J: command not found
    ./test1.sh line 3: FACE_NAME: command not found
    ./test1.sh line 4: USER_DB_NAME: command not found
    

    Any ideas?? I'm using Cygwin under Windows XP.