找不到Bash变量赋值和命令

时间:2009-11-11 11:28:58

标签: bash shell variables cygwin

我有一个shell脚本,可以让我访问脚本中的全局变量,但是当我尝试创建自己的变量时,它会响应:找不到命令。

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

当我运行上面的脚本时,我得到:

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

任何想法?我在Windows XP下使用Cygwin。

3 个答案:

答案 0 :(得分:109)

试试这个(注意我已经删除了=两侧的空格):

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

当你声明变量时,Bash不喜欢空格 - 也最好是引用每个值(但这不是必需的)。

答案 1 :(得分:11)

当您在其他文本中嵌入变量时,最好使用大括号来分隔变量名称:

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

点在这里为你完成工作,但如果那里有其他一些字符,它可能会被解释为变量名称的一部分。

答案 2 :(得分:6)

不要在“=”

之间留空格
J=4
FACE_NAME="eig${J}.face"
USER_DB_NAME="base${J}.user"