web-dev-qa-db-ja.com

bashスクリプトを使用してファイルの行を編集しますか?

VSFTPD/FTPをインストールしたbashスクリプトを作成しています。インストール後、「/ etc/vsftpd /vsftpd.conf」ファイルにいくつかの設定が必要です。

これには、次の行がこれに設定されていることを確認することが含まれます。

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES

これらの編集をインストール後に行う方法をスクリプト化するための最良のアプローチは何でしょうか?

2
user3024130

私は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

多くの変数を変更する必要がある場合は、ループを使用してこれを実行できますが、キーが3つしかない場合は、このようにすると便利です(私の意見では)。

1
user91968