为什么 sudo -S 对“mysql”命令不起作用?

为什么 sudo -S 对“mysql”命令不起作用?

我通常运行sudo mysql database < database.dump并在提示时输入密码。

为了自动执行此操作,我尝试执行echo 'password' | sudo -S mysql database < database.dump但它无法识别我的密码。

我也尝试过但没有成功:

mysql_cmd="mysql database < database.dump"
echo 'password' | sudo -S $mysql_cmd

我可以sudo -S正常执行其他命令。可能是什么问题?

答案1

database.dump正在标准输入上读入该文件。sudo -S从标准输入读取密码,后跟换行符。你也许可以用这个来代替:

( echo 'password'; cat database.dump ) | sudo -S mysql database

相关内容