Bar*_*mar 5 bash sudo variable
考虑以下命令:
sudo -i bash -c 'A=2; echo "|${A}|"; echo "|$A|";'
Run Code Online (Sandbox Code Playgroud)
当我在 Debian Linux 上运行它时,它会bash 4.2.37
打印sudo 1.8.5p2
:
|2|
|2|
Run Code Online (Sandbox Code Playgroud)
但是当我在 MacOS High Sierra 上运行它时,bash 3.2.57
它sudo 1.8.17p1
会打印:
|2|
||
Run Code Online (Sandbox Code Playgroud)
$A
为什么没有花括号就不显示?
-i
如果省略该选项,则不会发生这种情况- 两者2
都会被打印。bash
如果我只是跑而不经过,就不会发生这种情况sudo
。
在回答SO 问题时遇到了这种行为。那里的回答者正在运行 Linux,并且bash 4.3.48
得到sudo 1.8.16
了丢失的输出。所以看起来它与sudo
版本有关(或者可能是/etc/sudoers
他的 Linux 和我的 Mac 的共同点)。
归档时间: |
|
查看次数: |
184 次 |
最近记录: |