美文网首页
Shell变量赋值语句不能有空格

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

作者: raincoffee | 来源:发表于2018-08-02 20:01 被阅读39次

转载:https://blog.csdn.net/iamlaosong/article/details/54706145
前两天编一个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

相关文章

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

    转载:https://blog.csdn.net/iamlaosong/article/details/54706...

  • shell脚本空格问题

    shell脚本对空格有严格的规定,赋值语句等号两边不能有空格,而字符串比较,等号两边必须有空格 if语句,中括号前...

  • shell学习笔记(一):变量

    一 shell变量 声明变量名和等号之间不能有空格。 赋值shell在默认情况下不会区分变量类型,变量值以字符串形...

  • 2018-8-19

    今日学到了: shell脚本里,变量赋值的等于号两边不能留空格。

  • bash shell 变量(1)

    Shell 脚本学习 1. 变量 1)定义变量 赋值=两边不能有空格,不管带不带引号都是字符串 2)使用变量 {}...

  • shell编程注意事项

    定义变量时,变量名不加美元符号;变量名和等号间不能有空格;除了自己赋值,还可以用语句,如:for file in ...

  • Shell 变量

    shell变量 给变量赋值时,等号两边一定不能留空格,若变量中本身就包含了空格,则整个字符串都要用双引号括起来 e...

  • shell变量赋值的=与空格

    今天有人问了一个小问题,类似这样: 如果是想把执行命令的结果赋值给变量:下面两个方法都可以 那我们看看为什么第一个...

  • Shell语法(3)--if语句

    shell中if语句有两种写法 注意: if()后面不需要{}只需要;语句一定要有tab键输入,不能是空格。空格在...

  • Linux基础shell,无C高级的预习(4)

    shell脚本 1,字符串的操作1)若打印时有空格,则应“$变量名”;若字符串赋值时,若值中有空格,变量名 = “...

网友评论

      本文标题:Shell变量赋值语句不能有空格

      本文链接:https://www.haomeiwen.com/subject/qqnsvftx.html