Shell变量赋值语句不能有空格

您所在的位置:网站首页 给变量赋值的命令是什么 Shell变量赋值语句不能有空格

Shell变量赋值语句不能有空格

2024-07-10 19:23| 来源: 网络整理| 查看: 265

iamlaosong文

前两天编一个shell脚本犯了一个低级错误,给变量赋值时加了空格(时间长了,规则都忘了),结果导致变量没有赋值,无法完成预定的功能。因为是一个定时执行的脚本,又是用一个老脚本改的,也就没有测试,结果没有发现这个错误,几天后检查时才发现了问题。教训就是:1、工作要认真认真再认真;2、再小的改动也要测试一下。

1、shell脚本变量名和等号及等号和值之间不能有空格,这可能和我们熟悉的所有编程语言都不一样,变量命名须遵循如下规则: •首个字符必须为字母(a-z,A-Z)。 •中间不能有空格,可以使用下划线(_)。 •不能使用标点符号。 •不能使用bash里的关键字(可用help命令查看保留关键字)。

赋值语句等号两边不能有空格,中间有空格时,shell是把变量当一个命令执行的,如:

PROV = anhui

执行时会提示:./tt.sh: line 14: PROV: command not found

正确的写法是:

PROV=anhui

如果所赋的值包含空格,可以用引号括起来(没有空格时也可以用引号,效果和不用一样),例如:

PROV="anhui province"

2、变量的引用是用$符号加上变量名,例如:

echo  ../${PROV}/${DATDIR}

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,建议给所有变量加上花括号,这是个好习惯,既便于阅读,又不易出错。 

最后想说明一下,shell脚本对空格有严格的规定,赋值语句等号两边不能有空格,而字符串比较,等号两边必须有空格,如:

if [ "${sdpt}" = "sdpt_js" ]; then



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3