我正在尝试通过 执行环境变量替换envsubst,但我只想替换特定变量。
从文档中,我应该能够告诉envsubst只替换某些变量,但我无法做到这一点。
例如,如果我有一个包含以下内容的文件:
VAR_1=${VAR_1}
VAR_2=${VAR_2}
Run Code Online (Sandbox Code Playgroud)
我应该如何执行envsubst以便它只替换对 的引用${VAR_1}?
我有一个文本文件,它通常填充多行,我想用 while 循环“打印”。此文件中的文本包含变量 - 我的问题是,这些变量的解释与包含存储在脚本中的变量的类似测试字符串不同。是否也可以从我的外部文件中解释这些变量,或者我是否必须事先解析它们等?$LINE_INSIDE和 和有$LINE_OUTSIDE什么区别?我尝试了来自其他问题的一些建议,例如${!varialbe_name}带有引号的不同结构,但到目前为止还没有运气。
#!/bin/bash
# color.sh
BLUE='\033[1;34m'
NC='\033[0m' # No Color
LINE_INSIDE="${BLUE}Blue Text${NC}"
echo -e ${LINE_INSIDE}
while read LINE_OUTSIDE; do
echo -e ${LINE_OUTSIDE}
done < text_file
Run Code Online (Sandbox Code Playgroud)
输出:
附加信息:我(确实)在我的输入文本文件中也有不应执行的 shell 命令。只应扩展变量。