请考虑以下片段:
$ export xx=foo
$ sudo bash -c 'echo $xx ~'
/root
Run Code Online (Sandbox Code Playgroud)
这没关系。我们看不到xx。
但是,如果我暴露它:
$ sudo -E bash -c 'echo $xx ~'
foo /home/xropi
Run Code Online (Sandbox Code Playgroud)
尽管很多人说~不是别名,但不知何故它是环境的一部分,因为-E会暴露原始内容,阻止我推迟其评估。
是否可以在 sudo-ed 命令中传递我的变量并将 ~ 评估为 /root ?
我想在使用 sudo 运行时得到这个:
foo /root
Run Code Online (Sandbox Code Playgroud)