ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [20210418]打开多个程序运行.txt

[20210418]打开多个程序运行.txt

原创 Linux操作系统 作者:lfree 时间:2021-04-18 10:43:08 0 删除 编辑

[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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4014
  • 访问量
    7991145