我通常运行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