克服脚本中的交互式命令

克服脚本中的交互式命令

我正在尝试使用脚本在 proxmox 上创建容器,并且我希望用户在继续创建容器之前输入他的密码,这样我就可以将其推送到主命令。

询问用户密码的命令行是:

pct create ID Path_to_template  -password

在此过程中,将要求用户输入新密码,但我想使用我之前收到的密码。有没有办法在执行过程中推送它pct

有没有什么办法可以做到这一点?

答案1

我发现这个简单的脚本可以完成这项工作:

#!/bin/bash
# Script to add a user to Linux system
if [ $(id -u) -eq 0 ]; then
    read -p "Enter username : " username
    read -s -p "Enter password : " password
    egrep "^$username" /etc/passwd >/dev/null
    if [ $? -eq 0 ]; then
        echo "$username exists!"
        exit 1
    else
        pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
        useradd -m -p $pass $username
        [ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!"
    fi
else
    echo "Only root may add a user to the system"
    exit 2
fi

答案2

使用预计.Expect 让您自动化 shell 上的用户交互(输入密码、ssh……)。您可以在那里找到一些适合您需要的示例。Expect 示例

相关内容