我有一个bash脚本,可以多次调用MySQL.而不是必须重新连接到MySQL,有没有办法保持连接打开?理想情况下,如果脚本提前退出,则连接将关闭.我认为命名管道可以工作,但他们会保持开放.
这是我希望找到的一个快速伪示例:
openMySQL
executeMySQL "SELECT 1"
exit 1
executeMySQL "SELECT 2"
Run Code Online (Sandbox Code Playgroud)
我正在寻找MySQL连接实际关闭期间的函数openMySQL和executeMySQL函数exit 1.
我有一些我正在寻找的东西.
使用fd = 3保持mysql连接打开以进行写入:
exec 3> >(mysql)
echo "SELECT 1;" >&3
echo "SELECT 2;" >&3
exec 3>&-
使用fd = 3保持mysql连接打开以进行读取:
exec 3< <(echo "SELECT 1;SELECT 2;"|mysql|sed '1d')
while read <&3
do
echo $REPLY
done
注意:sed'1d'删除标题.
有没有办法合并这些,所以你可以写一个fd并从另一个读取?
据我所知,你的问题是:在zsh/ksh中可用的coproc以及bash v4 +可能与你的想法类似,例如
bash4-4.1$ coproc MYSQL mysql -B -uroot
[1] 10603
bash4-4.1$ jobs
[1]+ Running coproc COPROC MYSQL mysql -B -uroot &
bash4-4.1$ echo 'show databases;' | MYSQL
Database
information_schema
...
Run Code Online (Sandbox Code Playgroud)
该命令保持在后台运行,其stdin/stdout可以被访问,一旦当前shell存在,它将完成(因此它的标准输入关闭/ EOF ing)...
| 归档时间: |
|
| 查看次数: |
5869 次 |
| 最近记录: |