You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux命令行如何将环境变量名而非值写入文件

解决Here-Doc中保留环境变量名不被展开的问题

要让echo $MY_ENV_VAR原封不动写入目标脚本文件,只需对here-doc的结束标记做简单修改:

cat > ~/add_api_txt_hook.sh <<'EOF' 
#!/bin/bash 
... 
echo $MY_ENV_VAR
EOF

核心逻辑是:默认的<<EOF会触发Bash对内容进行变量替换、命令替换等解析操作,所以未设置的$MY_ENV_VAR会被替换为空字符串;而用单引号包裹结束符'EOF'后,Bash会把整个here-doc内容当作纯文本处理,不做任何解析,$MY_ENV_VAR就能完整保留在文件里。

如果只是单个变量需要保留,也可以单独转义变量名的$符号:

cat > ~/add_api_txt_hook.sh <<EOF 
#!/bin/bash 
... 
echo \$MY_ENV_VAR
EOF

但如果脚本里有多个变量需要保留,第一种用单引号包裹结束符的方法更高效,不用逐个转义每个$。

内容的提问来源于stack exchange,提问作者meh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 02:09:55