在bash中,这有效:
var1=abc
但这会产生错误:
var*1=abc
var*1=abc: command not found
为什么这样?为什么将表达式视为命令?
答案 0 :(得分:1)
来自http://www.gnu.org/software/bash/manual/bashref.html
名称
单词由字母,数字和下划线组成,以字母或下划线开头。名称用作shell变量和函数名称。也称为标识符。
左侧的值不是标识符。这是一种表达方式。因此,该命令(用于评估整个表达式)无效。
换句话说,您不能在名称中使用星号,也不能通过进行一些数学运算(乘法)来生成变量名称。
答案 1 :(得分:1)
变量标识符的字符(星号)无效。
答案 2 :(得分:1)
POSIX定义shell变量名称由字母数字和下划线组成,而不是以数字开头。 (有些特殊变量违反了这一点;它们总是单个字符,并且不能与用户定义的变量发生冲突。)
3.230姓名
在shell命令语言中,单词由下划线,数字和字母组成 便携式字符集。名字的第一个字符不是数字。