[20191215]seq控制執行順序.txt
[20191215]seq控制執行順序.txt
--//我測試經常使用seq+xargs控制迴圈執行次數,記錄一下工作中遇到的問題.
1.測試次數過1e6的情況:
--//一般測試迴圈次數不會太多,不會遇到這個問題.如果過了1e6.
$ seq 1000000 1000002
1e+06
1e+06
1e+06
--//解決方法如下:
$ seq -f "%7.0f" 1000000 1000002
1000000
1000001
1000002
--//這個版本我知道僅僅出現在rh 5.9 的版本(順便說一下版本的bash問題多多).bash version如下:
# echo $BASH_VERSION
3.2.25(1)-release
--//包括Bash Code Injection Vulnerability CVE-2014-7169.簡單的測試程式碼:
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test
--//如果出現vulnerable顯示,說明有問題,我們exadata就有這個bug包括後臺的伺服器.其它高版本bash shell沒有這個問題:
$ echo $BASH_VERSION
4.4.12(3)-release
$ seq 1000000 1000002
1000000
1000001
1000002
2.執行啟動慢的問題.
--//測試例子:
$ cat a.txt
exec :v_a := &&1;
select * from t where id = :v_a;
commit;
$ cat t1.sh
#!/bin/bash
sqlplus -s -l scott/book <<EOF
set feedback off
variable v_a number;
$(seq 1000000 | xargs -IQ echo -e "@ a.txt Q" )
quit
EOF
--//如果執行t1.sh,會遇到執行啟動緩慢的問題,因為bash shell要完全展開seq 1000000 | xargs -IQ echo -e "@ a.txt Q" 的輸出後
--//才開始執行.要將seq 1000000 | xargs -IQ echo -e "@ a.txt Q" 放在外面,改寫如下:
$ mknod /tmp/oop.pipe p
$ ls -l /tmp/oop.pipe
prw-r--r-- 1 oracle oinstall 0 2019-11-04 10:44:02 /tmp/oop.pipe
--//建立一個管道裝置.
$ cat t1.sh
#!/bin/bash
seq 1000000 | xargs -IQ echo -e "@ a.txt Q" > /tmp/oop.pipe &
sqlplus -s -l scott/book <<EOF
set feedback off
variable v_a number;
@ /tmp/oop.pipe
quit
EOF
3.另外發現seq也可以拼成一行,使用-s引數.
$ seq -s ":" 10
1:2:3:4:5:6:7:8:9:10
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2668702/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20191112]flock控制命令執行順序.txt
- Sql執行順序SQL
- pipeline的執行順序
- JavaScript執行順序分析JavaScript
- mySQL 執行語句執行順序MySql
- pytest 框架多個 test.py 檔案怎麼控制其執行順序,除了預設的檔名 ascii 碼順序執行還有什麼外掛或者方法可以控制其執行順序麼框架ASCII
- Select語句執行順序
- Spring Aop的執行順序Spring
- sql mysql 執行順序 (4)MySql
- SQL語句執行順序SQL
- js執行順序Event LoopJSOOP
- Pytest 順序執行,依賴執行,引數化執行
- mysql 語句的執行順序MySql
- 關於 Promise 的執行順序Promise
- sql select語法執行順序SQL
- SQL 語句的執行順序SQL
- async await、Promise、setTimeout執行順序AIPromise
- js解惑-函式執行順序JS函式
- 聊聊如何讓springboot攔截器的執行順序按我們想要的順序執行Spring Boot
- Java中如何保證執行緒順序執行Java執行緒
- join、volatile、newSingleThreadLatch 實現執行緒順序執行thread執行緒
- kafka多執行緒順序消費Kafka執行緒
- 路由的中介軟體執行順序路由
- unittest--TestCase 按宣告順序執行
- Go包中程式碼執行順序Go
- 利用訊號量實現執行緒順序執行執行緒
- 【高併發】深入理解執行緒的執行順序執行緒
- Python執行緒專題10:queue、多執行緒按順序執行Python執行緒
- java類內部程式碼執行順序Java
- Jmeter的元件作用域和執行順序JMeter元件
- C#類中方法的執行順序C#
- Gradle系列(二) Gradle執行順序和taskGradle
- pytest(4)-測試用例執行順序
- 令人費解的 async/await 執行順序AI
- SQL語句各子句的執行順序SQL
- java繼承關係下執行順序Java繼承
- Java之執行緒的優先順序Java執行緒
- C#中Page執行順序:OnPreInit()、OnInit()……C#