Ubuntu环境下如何用BASH脚本将用户输入变量追加至文件以自动化添加VSFTPD用户
VSFTPD用户自动化添加的Bash实现方案
你当前的awk写法完全没踩中需求点——awk是用来处理已有文本的,要把用户输入的变量追加到文件末尾,根本没必要用awk或sed,用Bash基础命令就能搞定,简单高效。
核心实现方法
- 先获取用户输入的变量(比如用户名):
read -p "输入要添加的VSFTPD用户名: " centre_name - 直接将变量追加到目标文件末尾:
要是VSFTPD用户文件采用echo "$centre_name" >> /etc/vsftpd-users用户名:密码的常见格式,可以扩展成:read -p "用户名: " ftp_user read -sp "密码: " ftp_pass echo echo "$ftp_user:$ftp_pass" >> /etc/vsftpd-users
非必要的sed实现(仅作参考)
如果非要用sed完成追加操作(纯学习用途),可以用:
sed -i "\$a $centre_name" /etc/vsftpd-users
解释:\$匹配文件最后一行,a是sed的追加指令,把变量内容插在最后一行之后。
完整自动化脚本示例
#!/bin/bash # 检查是否为root用户(修改系统文件需要权限) if [ "$(id -u)" -ne 0 ]; then echo "请以root身份运行此脚本" exit 1 fi # 获取用户输入 read -p "请输入VSFTPD用户名: " ftp_user read -sp "请输入用户密码: " ftp_pass echo # 追加到用户列表文件 echo "$ftp_user:$ftp_pass" >> /etc/vsftpd-users # 重启VSFTPD服务生效 systemctl restart vsftpd echo "用户 $ftp_user 已成功添加"
内容的提问来源于stack exchange,提问作者ID7
相关产品推荐
相关产品推荐

