use*_*610 0 variables bash environment-variables
我想导出一个带空格的变量名。在shell export
命令中可以吗?
{'Truststore Filename': '/hom/truststore.jks', 'Truststore Password': 'pass'}
Run Code Online (Sandbox Code Playgroud)
$ export 'Truststore Password'=clientpass
-bash: export: `Truststore Password=clientpass': not a valid identifier
Run Code Online (Sandbox Code Playgroud)
但是我想使用export
命令导出变量,因为我们要导出的变量不止一个,其名称中有空格。
但是,以下方式有效。
$ env 'Truststore Password'=clientpass 'Truststore Filename'=/hom/truststore.jks python3 script.py
Run Code Online (Sandbox Code Playgroud)
不,这是不可能的,因为bash中的变量的名称不能包含空格:
name
一个仅由字母,数字和下划线组成的单词,以字母或下划线开头。
Name
用作shell变量和函数名称。也称为identifier
。
env
如您所见,按照不同的规则播放:
环境变量名称可以为空,并且可以包含'='和ASCII NUL以外的任何字符。但是,将自己限制为仅包含下划线,数字和ASCII字母且以非数字开头的名称是明智的,因为像shell这样的应用程序不能与其他名称很好地配合使用。
(来源:info '(coreutils) env invocation'
;重点是我的)
恰当的例子,这是另一篇文章,回答了如何获取带有空格的环境变量的输出会带来多大的痛苦