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)
您可以将其中几个放在同一个脚本中.
file ="/ tmp/test.txt"
echo"添加第一行"> $ file
echo"添加第一行替换"> $ file
echo"追加第二行">> $ file
echo"追加第三行">> $ file
cat $ file
>添加/替换内容(这里实际内容被第二行替换)
>>追加
结果
添加第一行替换
追加第二行
追加第三行
像这样:
#!/bin/bash
var="your text"
echo "simply put,
just so: $var" > a.config
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅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
Run Code Online (Sandbox Code Playgroud)
请参阅示例 19.7此处文档中关闭的参数替换