我有一个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。
答案 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"