我需要配置一个文件很少的服务器,我想以编程方式进行。
我需要创建文件说/home/a.config,/var/spool/b.config,/etc/c.config
上面的文件有一些内容(多行)。
我想创建一个shell脚本,它可以创建具有多行(大约10个)的所有三个文件。 我想知道我如何使用CAT命令来做到这一点。 (在shell脚本中)。
我正在寻找像这样的人
echo " going to create /home/a.config"
cat "HOW CAN I HAVE MULTIPLE LINES HERE?? " > /home/a.config
感谢
答案 0 :(得分:71)
您可以使用此处的文档:
cat <<EOF >/home/a.config
first line
second line
third line
EOF
您可以在同一个脚本中放置其中的几个。
答案 1 :(得分:8)
文件=&#34; /tmp/test.txt"
echo&#34;添加第一行&#34; &GT; $文件
echo&#34;添加第一行替换&#34; &GT; $文件
echo&#34;追加第二行&#34; &GT;&GT; $文件
echo&#34;追加第三行&#34; &GT;&GT; $文件
cat $ file
&gt; 添加/替换内容(此处实际内容被第二行替换)
&gt;&gt; 附加
结果
添加第一行替换
附加第二行
附加第三行
答案 2 :(得分:6)
像这样:
#!/bin/bash
var="your text"
echo "simply put,
just so: $var" > a.config
有关详细信息,请参阅abs的输入/输出部分 希望,这有帮助。
答案 3 :(得分:1)
>\#!/bin/bash
>
>var="your text" <br>
>echo "simply put, <br>
>just so: $var" > a.config
请注意,你还需要逃避某些字符以避免它们干扰你正在尝试做的事情,例如$`和“将会破坏这样的语句,除非前面加上反斜杠,即\`\ $或\“
所以,如果我们定义以下内容:
VAR = “100”
以下行为不符合预期:
回声“简单地说,左 只是“借给我”US $ $ var“&gt; a.config
但以下内容可以正常运行:
回声“简单地说,左 只是“借给我”US \ $ $ var“&gt; a.config
答案 4 :(得分:1)
如果您的文本中有$ 1或$ HOMEDIR等变量,则通常会对这些变量进行求值并用实际值替换。如果你想阻止它们被替换,那么你需要引用开头限制字符串(下面的例子中的EOF),引用单引号'EOF'
,双引号"EOF"
或者在它前面加上反斜杠\EOF
关闭限制字符串保持不变。 EOF
如果要将shell脚本编写到文件中,这将非常有用。
cat << 'EOF' >/etc/rc.d/init.d/startup
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is running with pid: $pid"
else
echo "Tomcat is not running"
fi
;;
esac
EOF
参考例19.7参数替换在Here Documents
中关闭