开发者

Bash variable assignment and command not found [duplicate]

开发者 https://www.devze.com 2022-12-10 22:38 出处:网络
This question already has answers here: Command not found error in Bash variable assignment (5 answers)
This question already has answers here: Command not found error in Bash variable assignment (5 answers) Closed 6 years ago.

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: comma开发者_开发技巧nd not found

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


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).


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.


dont' leave spaces between "="

J=4
FACE_NAME="eig${J}.face"
USER_DB_NAME="base${J}.user"
0

精彩评论

暂无评论...
验证码 换一张
取 消