unix 使用shell脚本创建包含某些内容的文件

yxyvkwin  于 2022-11-04  发布在  Unix
关注(0)|答案(5)|浏览(188)

我需要用几个文件配置一个服务器,我想通过编程来完成。
我需要创建文件/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

谢谢

pbgvytdp

pbgvytdp1#

您可以使用此处的文档:

cat <<EOF >filename
first line
second line
third line
EOF

您可以在同一脚本中放置多个这样的对象。

yzuktlbb

yzuktlbb2#

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

**〉**添加/替换内容(此处实际内容被第2行替换)
**〉〉**要追加
结果

添加替换的第一行
附加第二行
追加第三行

9wbgstp7

9wbgstp73#

就像这样:


# !/bin/bash

var="your text"
echo "simply put,
just so: $var" > a.config

有关详细信息,请参阅abs的输入/输出部分。
霍普,这个有用.

7bsow1i6

7bsow1i64#

如果你的文本中有$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中关闭参数替换

wwodge7n

wwodge7n5#

>\#!/bin/bash
>
>var="your text" <br>
>echo "simply put, <br>
>just so: $var" > a.config

请注意,您还需要转义某些字符,以避免它们干扰您正在尝试执行的操作,例如,除非前面有反斜杠,否则$′和“都将中断这样的语句,即\′$或\”
因此,如果我们定义以下内容:
变量=“100”
以下内容的行为将不符合预期:
简单地说,
只需“借给”我US$ $var”〉a.config
但以下命令可以正常工作:
简单地说,
只需\“借给\”我US$ $var”〉a.config

相关问题