linux - 从文件中读取用户名和密码

标签 linux bash scripting fedora

我正在研究读取文件的用户名和密码并将其输入以添加用户或删除用户的方法。

EG:我有一个名为“userlist”的文件,其中包含以下格式的内容:

user1 pass1
user2 pass2
user3 pass3

我完全不明白如何使用 BASH 脚本添加这些帐户。

到目前为止我所拥有的是:

if [[ whoami -ne "root" ]]
then
exit
else
echo "wish to add or delete? a/d"
read uArg
echo "enter file name"
read uFile
if [ $uArg = "a" -o $uArg = "A" ]
then
    IDK WHAT TO DO HERE.
elif [ $uArg = "d" -o $uArg = "D" ]
then
   IDK WHAT TO DO HERE.
fi
fi

好吧,我不明白的是如何逐行读取每个单词并输入用户名和密码来添加新用户或删除现有用户。

程序将读取整个文件并添加每个用户及其相应的密码。如果选择删除,则会删除文件中的每个用户。

我是 BASH 新手,因此我们将不胜感激任何帮助。

最佳答案

awk 完美满足您的需求。

请参阅此示例:

$ awk '{print "Hi! my name is " $1 ", and my pass is " $2}' ./userpass.txt 
Hi! my name is user1, and my pass is pass1
Hi! my name is user2, and my pass is pass2
Hi! my name is user3, and my pass is pass3

awk 将用户名存储在 $1 中,将密码存储在 $2 中(第一列和第二列)。

您可以使用管道来执行从 awk 获取的字符串作为命令:

$ awk '{print "echo " $1}' ./userpass.txt | /bin/bash
user1
user2
user3

关于linux - 从文件中读取用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12400299/

相关文章:

c++ - Linux - 限制每个进程的线程数

bash - 将内插的sqlite3查询分配给Bash中的变量的正确报价是什么?

Linux shell 将变量值传递给主程序

bash - PS1 变量中的字符

用于快速创建和填充新测试文件的 BASH shell 脚本

Linux sftp 服务器上的权限问题

linux - lxc-clone 无法在 centos 7 中与 overlayfs 一起使用

linux - shell脚本的算术题

javascript - 在 ie 浏览器上禁用 JavaScript

c++ - system() 以不同的方式执行 shell 命令 C++