我需要使用一些文件配置服务器,并且我想以编程方式执行此操作。
我需要创建文件说
/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
谢谢
file="/tmp/test.txt"
echo "Adding first line" > $file
echo "Adding first line replaced" > $file
echo "Appending second line " >> $file
echo "Appending third line" >> $file
cat $file
> 添加/替换内容(这里实际内容被第二行替换)
>> 追加
结果
添加第一行已替换
追加第二行
追加第三行
像这样:
#!/bin/bash
var="your text"
echo "simply put,
just so: $var" > a.config
有关更多信息,请参阅abs的输入/输出部分。
希望这有帮助。
如果文本中有像 $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 参数替换已关闭>\#!/bin/bash
>
>var="your text" <br>
>echo "simply put, <br>
>just so: $var" > a.config
请注意,您还需要转义某些字符,以避免它们干扰您想要执行的操作,例如 $ ` 和 " 都会破坏这样的语句,除非前面有反斜杠,即 \` \$ 或 \"
因此,如果我们定义以下内容:
var=“100”
以下行为不会按预期运行:
echo“简单地说,
只是“借给”我 US$ $var" > a.config
但以下内容可以正常工作:
echo“简单地说,
只是“借给”我 US\$ $var" > a.config
我会使用
tee
命令,如下所示:
echo "My
long
multiline
text
here!
" | sudo tee -a /etc/config.conf