首页 > 解决方案 > Shell脚本,如何在没有用户干预的情况下输入用户的输入

问题描述

所以我的想法是制作一个创建用户的shell脚本。例如,在命令之后:flask fab create-admin

被调用它会要求一些输入:用户名(用户输入用户名,点击输入)用户名字(用户输入名字,点击输入)密码(用户输入名字,点击输入)

我想在文件中定义这些输入,所以当调用命令时,输入将自动提供,无需用户干预。

如何在 shell 脚本中实现这一点?谢谢!

标签: bashshell

解决方案


我不知道flask,但如果需要按用户名、名字、密码的顺序输入;你可以使用 heredocs 来自动化它。

# /bin/bash

source password.txt # a file that has the content of:
                    # username=user
                    # firstname=Ivan
                    # password=123


flask fab create-admin <<-EOF
${username}
${firstname}
${password}
EOF

exit 0

但是,以纯文本形式存储密码通常是个坏主意。read只要脚本正在运行,您就可以使用一次请求用户输入并多次重复使用它。

read -sp "Password? " password
echo $password

推荐阅读