在尝试在 中设置最后一个位置参数时/bin/dash,我尝试了echo ${$#}. 令人惊讶的是,这并没有导致错误,而是进入了与$$变量内容相同的 PID 。问题是,为什么这种语法有效?shell 在这里应用的语法规则是什么?
基本上,我所做的是
$ set 1 2 3 4 5
$ echo ${$#}
13819
$ echo $$
13819
Run Code Online (Sandbox Code Playgroud)
显然,%在这样的构造中,字符也会被忽略
$ echo ${$%}
13819
Run Code Online (Sandbox Code Playgroud)
但是*并@导致错误的替换错误:
$ echo ${$*}
sh: 10: Bad substitution
$ echo ${$@}
sh: 11: Bad substitution
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1278 次 |
| 最近记录: |