输入pass执行mysql脚本的sh脚本

Joc*_*Doe 3 command-line bash scripts database sh

我想执行一个 mysql 脚本,如果可能的话,要求用户从命令行动态输入密码Enter your $root password。但是,它没有按预期工作。到目前为止我有

mysql -u root -p CREATE DATABASE IF NOT EXISTS Test
Run Code Online (Sandbox Code Playgroud)

此外,当创建数据库时如何从 mysql 注销并返回到 bash 命令?

Per*_*uck 7

根据文档

mysql -u root -p --execute="SELECT User, Host FROM mysql.user"
Run Code Online (Sandbox Code Playgroud)

提示输入密码,执行给定的命令,并返回到 shell(不需要注销)。

如果您想要自己的提示,则需要编写脚本:

#!/usr/bin/env bash

echo "Enter pwd"
read pwd
mysql -u root -p$pwd --execute="SELECT User, Host FROM mysql.user"
Run Code Online (Sandbox Code Playgroud)

请注意,-pand之间不能有空格,$pwd因为 mysqlthen 被认为$pwd是数据库的名称。

我不建议这样做,因为密码在终端中以明文显示,而mysql -p显示为星号。