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

Mah*_*hes 39 unix shell scripting

我需要配置一个文件很少的服务器,我想以编程方式进行.

我需要创建文件说/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 
Run Code Online (Sandbox Code Playgroud)

谢谢

Pau*_*ce. 77

你可以使用这里的文件:

cat <<EOF >/home/a.config
first line
second line
third line
EOF
Run Code Online (Sandbox Code Playgroud)

您可以将其中几个放在同一个脚本中.


All*_*win 9

file ="/ tmp/test.txt"
echo"添加第一行"> $ file
echo"添加第一行替换"> $ file
echo"追加第二行">> $ file
echo"追加第三行">> $ file
cat $ file

>添加/替换内容(这里实际内容被第二行替换)
>>追加

结果
添加第一行替换
追加第二行
追加第三行

  • 我想知道为什么没有人给你投赞成票。你的回答也很好。谢谢为我工作。 (2认同)
  • 我认为你的答案非常正确...... (2认同)

Vic*_*kin 7

像这样:

#!/bin/bash

var="your text"
echo "simply put,
just so: $var" > a.config
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅abs的输入/输出部分.
希望这可以帮助.


Dee*_*Rao 6

如果您的文本中有 $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
Run Code Online (Sandbox Code Playgroud)

请参阅示例 19.7此处文档中关闭的参数替换