मैंने पाया कि जब कोई TTY नहीं था तो दूसरा सुझाया गया उत्तर काम नहीं करता था। इसलिए मैंने इस बैश स्क्रिप्ट का उपयोग किया जो टेराफॉर्म/एसएसएच जैसी जगहों पर काम करती है जिसमें टर्मिनल नहीं है:
#!/bin/bash
if [ $# -ne 4 ]; then
echo "Incorrect number of input arguments: $0 $*"
echo "Usage: $0 <login> <host> <username> <password>"
echo "Example: $0 test 10.1.2.3 myuser mypassword"
exit 1
fi
login=$1
host=$2
user=$3
pass=$4
unbuffer expect -c "
spawn mysql_config_editor set --login-path=$login --host=$host --user=$user --password
expect -nocase \"Enter password:\" {send \"$pass\r\"; interact}
"
इसका परीक्षण करें:
./mysql_config.sh login 10.1.2.3 myuser mypass < /dev/null