如何使用bash脚本将多行粘贴到文件中?

时间:2013-06-23 11:43:19

标签: bash bind nis

我正在编写一个脚本,它将使用正确的设置自动配置NIS客户端。 我正在尝试设置/etc/nsswitch.conf文件,我想用我的设置覆盖已存在的任何内容。 现在我的问题是,我该怎么做?如何直接从脚本中将大约20行设置粘贴到客户端的nsswitch.conf文件中? 我知道我可以做类似的事情:

echo "line 1" > /etc/nsswitch.conf
echo "line 2" >> /etc/nsswitch.conf

但这是一种丑陋的方式,我希望有更好的方法来实现这一目标

1 个答案:

答案 0 :(得分:7)

我会将cathere-doc语法结合使用:

cat <<EOF > /etc/nsswitch.conf
group:          compat
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
...
EOF

上述语句将覆盖或创建包含第一行和EOF之间内容的文件。在上面的表格中,甚至像group: $group这样的变量也会被bash扩展。如果您不想这样做,请使用<<'EOF'(请注意'周围的单引号EOF