我试图理解本地/环境变量和导出/设置命令。
$ set FILEM="razrax"
$ echo $FILEM
$ FILEN="test"
$ echo $FILEN
test
请解释为什么echo $FILEM
返回空字符串
答案1
你bash
对感到困惑csh
。
就像bash
任何类似 Bourne 的 shell 一样,set
是命令放选项(shell 配置设置,如-f
、-C
、-o noclobber
...)和位置参数($1
、$2
...)。
set FILEM="razrax"
设置$1
为FILEM=razrax
.
$ set FILEM="razrax"
$ echo "$1"
FILEM=razrax
类似 Bourne 的 shell 中变量赋值的语法是:
VAR=value
(两边都不允许有空格=
)。
ksh
和其他一些类似 Bourne 的 shell(mksh、pdksh、zsh)也可以使用以下方式分配数组变量set
:
set -A array value1 value2
zsh
、bash
和yash
较新版本ksh
使用此语法:
array=(value1 value2)
相反,在csh
or中tcsh
,语法为:
set VAR = value
set array = (value1 value2)
(周围的空格=
可选)。
在rc
/es
壳中:
VAR = value
array = (value1 value2)
(周围的空格=
可选)。