[20210418]打开多个程序运行.txt
--//昨天看链接https://fritshoogland.wordpress.com/2021/04/09/pgbouncer-and-slow-server-pool-increase/,我发现对方并行使
--//用for循环编写,我知道xargs -P 打开并行后,基本就是seq xargs来实现。
--//链接的写法:
for n in $(1 200) do; ysqlsh -h localhost -p 6432 -c "select pg_sleep(60);" & done
--//我一般的写法例子:
$ seq 150 | xargs -I{} -P 150 sqlplus -s -l scott/book @m10.txt 2e5 p1full=150 {} >/dev/null
--//我测试对方的方法遇到一些问题,就是加入&放入后台与分号的问题。
$ for n in {1..4} ; do echo $n; done
1
2
3
4
--//注我不知道为什么我的bash 版本不能写in $(1 200)。
--//如果写成
$ for n in {1..4} ; do echo $n done
>
--//弹出一个> ,无法执行,而且我感觉原链接do后面加入分号好像也不对,估计是笔误,分号只能写在do之前。
$ for n in {1..4} do; echo $n ;done
-bash: syntax error near unexpected token `echo'
--//实际上让我困惑的是如果放入后台使用 & ,无法使用分号。
$ for n in {1..4} ; do echo $n & ;done
-bash: syntax error near unexpected token `;'
--//也就是这样写不能使用分号。写成如下:
$ for n in {1..4} ; do echo $n & done
[1] 46713
[2] 46714
1
[3] 46715
2
[4] 46716
3
[1] Done echo $n
4
[2] Done echo $n
[3]- Done echo $n
[4]+ Done echo $n
--//如果我前面seq xargs的写法改写只能如下:
$ for n in {1..10}; do sqlplus -s -l scott/book @m10.txt 1e5 p1fullx=150 $n > /dev/null & done
--//如果使用& 后面不能使用分号。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2768585/ ,如需转载,请注明出处,否则将追究法律责任。