我想将字符串回显到/etc/hosts文件中。该字符串存储在一个名为$myString
的变量中。
当我运行以下代码时,回波为空:
finalString="HellonWorld"
sudo bash -c 'echo -e "$finalString"'
我做错了什么?
-
您并没有将变量导出到环境中,以便子流程可以拾取该变量。
-
你没有告诉
sudo
保护环境。
\
finalString="HellonWorld"
export finalString
sudo -E bash -c 'echo -e "$finalString"'
或者,您可以使用当前的shell替代品:
finalString="HellonWorld"
sudo bash -c 'echo -e "'"$finalString"'"'
您可以这样做:
bash -c "echo -e '$finalString'"
即使用双引号将参数传递到子shell,因此变量($finalString
)按预期扩展(由当前shell扩展)。
尽管我建议不要将-e
标志与echo
一起使用。相反,你可以做:
finalString="Hello
World"