我知道我可以使用envsubst
命令来替换文件中的环境变量并将其写入输出文件:
envsubst < input.txt > output.txt
但是,现在我只有一个变量,它不是一个文件。但是我仍然需要替换其中的任何环境变量。
export original_text="Hello $name, please come here $date"
# I want to be able to replace $name and $date, in the RAM and not on disk and files
export $name="John"
export $date="tomorrow"
output=$(envsubst < $original_text) # this is a pseudo-command
echo $output
# prints => Hello John, please come here tomorrow
可能吗?怎么能做到这一点?
是的,您可以使用此处的字符串:
<<< "$variable"
您的 original_text 必须是单引号,否则变量将在创建时被替换
original_text
。当然,您可以像往常一样将其保存在变量中:
您还可以通过管道传输到
envsubst
,例如: