我读到man sudo
以下内容:
--preserve-env
向安全策略表明用户希望保留其现有的环境变量。如果用户没有保护环境的权限,安全策略可能会返回错误。
但我想知道,即使我没有这个许可,是什么阻止我跑步
sudo env MY_VAR=$MY_VAR <cmd>
?
我读到man sudo
以下内容:
--preserve-env
向安全策略表明用户希望保留其现有的环境变量。如果用户没有保护环境的权限,安全策略可能会返回错误。
但我想知道,即使我没有这个许可,是什么阻止我跑步
sudo env MY_VAR=$MY_VAR <cmd>
?
我正在尝试将命令的输出通过管道传输到read
我的 shell 的内置函数中,并且我得到了不同的行为zsh
and bash
:
$ bash -c 'echo hello | read test; echo $test'
$ zsh -c 'echo hello | read test; echo $test'
hello
虽然这在 中不起作用bash
,但以下适用于两者:
$ bash -c 'echo hello | while read test; do echo $test; done'
hello
$ zsh -c 'echo hello | while read test; do echo $test; done'
hello
这是为什么?我用read
错了吗?test="$(echo hello)"
与迫使我更仔细地处理引用问题相比,我发现在脚本中使用它更具可读性。