如何在此处文档中包含变量?

如何在此处文档中包含变量?

我试图在某种cat <<eof>> filename情况下使用用户定义的全局变量,但它不起作用。我在这个论坛上的简单cat << eof示例中找到了我想要的东西,这引导我来到这里:http://www.tldp.org/LDP/abs/html/here-docs.html。但我想要类似下面的内容,并添加>>filename(这确实不是工作。):

#!/bin/bash

#after testing I will define this in .bashrc or somewhere?
set IP_ADDR = "123.123.123.123"

#empty the file in case there is something in it
truncate -s 0 sample.conf

# open a file and append
cat <<EOF >> sample.conf
  This is my sample config file
  Server IP = $IP_ADDR
  this is the last line of my sample config file
EOF

#print the file to verify
cat sample.conf

这会在之后产生一个空字符串Server IP =

sed如果我已经编写了除缺少变量值之外的文件,则可以工作,但我不一定可以将 IP 地址(或其他内容)作为文字字符串轻松使用。

另外,当我运行脚本时,我可能没有可用作命令行参数的文字字符串。$1确实在代码块内工作cat << eof >> filename。我证明了这一点。但当我启动此脚本时,我将无法立即访问该值......

答案1

set IP_ADDR = "123.123.123.123"

是不正确的。你需要:

IP_ADDR="123.123.123.123"

(没有空格)。

相关内容