我试图在某种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"
(没有空格)。