相关疑难解决方法(0)

使用终端内的mysql抑制警告消息,但用bash脚本编写密码

当我尝试从终端内的MySQL上运行以下命令时:

mysql -u $user -p$password -e "statement"
Run Code Online (Sandbox Code Playgroud)

执行按预期工作,但它总是发出警告:

警告:在命令行界面上使用密码可能不安全.

但是,我必须使用$password存储我的密码的环境变量()来执行上面的声明,因为我想在终端内的bash脚本中迭代地运行命令,我绝对不喜欢等待提示出现的想法并强迫我在一个脚本中输入50或100次密码.所以这是我的问题:

  • 抑制警告是否可行?该命令正如我所说的那样正常工作,但当我循环并运行命令50或100次时,窗口变得非常混乱.

  • 我是否应该遵守警告信息并且不在我的脚本中写入密码?如果是这种情况,那么每次提示迫使我这样做时,我是否必须输入密码?

跑步man mysql没有帮助,只说

--show-warnings
如果有任何声明,则会在每个声明后显示警告.此选项适用于交互式和批处理模式.

如果我没有遗漏某些东西,并且没有提及如何关闭功能.

我在OS X 10.9.1 Mavericks上,并使用自制的MySQL 5.6.

mysql bash shell

240
推荐指数
13
解决办法
26万
查看次数

如何为bash中提示输入的命令提供密码?

我正在编写一个UNIX shell函数,它将执行一个命令,提示用户输入密码.我想将密码硬编码到脚本中并将其提供给命令.我已经尝试将密码管道输入命令,如下所示:

function() {
    echo "password" | command
}
Run Code Online (Sandbox Code Playgroud)

这可能对某些命令不起作用,因为命令可能会在提示输入密码之前刷新输入缓冲区.

我也尝试将标准输入重定向到包含这样的密码的文件,但这也不起作用:

function() {
    echo "password" > pass.tmp
    command < pass.tmp
    rm pass.tmp
}
Run Code Online (Sandbox Code Playgroud)

我知道有些命令允许将密码作为参数提供,但我宁愿通过标准输入.

我正在寻找一种快速而肮脏的方法,将密码传递给bash中的命令.

unix passwords bash

37
推荐指数
5
解决办法
12万
查看次数

标签 统计

bash ×2

mysql ×1

passwords ×1

shell ×1

unix ×1