我想使用这个名字的变量:topMiddleOligocenetoUpperEocene?
我怎样才能在shell脚本中(即使用问号)?我试过了:
{topMiddleOligocenetoUpperEocene?}="something"
但是在我的shell脚本中没有理解它(myfile.sh在第一行使用#!/ bin / sh)。
任何提示都将受到赞赏,提前谢谢。
答案 0 :(得分:4)
不能。这不是bash中的有效标识符。请参阅http://www.gnu.org/software/bash/manual/bashref.html#Definitions
中name
的定义
名称
单词由字母,数字和下划线组成,以字母或下划线开头。名称用作shell变量和函数名称。也称为标识符。
答案 1 :(得分:3)
不,你不能在unix shell变量名中使用?
。事实上,许多其他特殊字符,例如句号,逗号,?
是不允许的。
这是shell变量名的正则表达式:
[a-zA-Z_][a-zA-Z0-9_]*
答案 2 :(得分:0)
?不能成为变量名的一部分,如:%=和更多的特殊含义的shell。在这种情况下,它将尝试查找以您的变量名称和1个字符(任何字符)开头的文件。除非你有一个可以由hte环境执行的,否则它将返回一个错误。
ksh:
{topMiddleOligocenetoUpperEocene?}="something"
sh: {topMiddleOligocenetoUpperEocene?}=something: not found.
bash
{topMiddleOligocenetoUpperEocene?}="something"
bash: {topMiddleOligocenetoUpperEocene?}=something: command not found