使用 bash 脚本编辑文件中的行?

使用 bash 脚本编辑文件中的行?

我正在创建一个安装 VSFTPD / FTP 的 bash 脚本。安装后,需要在“/etc/vsftpd/vsftpd.conf”文件中进行一些配置。

这包括确保将以下几行设置为:

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES

编写安装后进行这些编辑的脚本的最佳方法是什么?

答案1

我会使用sed它非常强大,这个 bash 文件会改变值:

  #!/bin/bash

  path_to_conf="/path/to/vsftpd.conf"
  anonymous_=NEIN
  local_=JA
  chroot_=IDK

  sed -c -i "s/\("anonymous_enable" *= *\).*/\1$anonymous_/" $path_to_conf
  sed -c -i "s/\("local_enable" *= *\).*/\1$local_/" $path_to_conf
  sed -c -i "s/\("chroot_local_user" *= *\).*/\1$chroot_/" $path_to_conf

如果您必须更改很多变量,您可以使用循环来完成此操作,但只有三个键,这样更好(在我看来)。

相关内容