[20210218]xargs 與here doc測試.txt

lfree發表於2021-02-18

[20210218]xargs 與here doc測試.txt

--//工作需要測試xargs與here doc(EOF)是否可以正常工作。

1.環境:
SCOTT@test01p> @ ver1
PORT_STRING                    VERSION        BANNER                                                                               CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0           12.2.0.1.0     Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production              0

2.測試例子:
--//家裡環境使用Cygwin64 Terminal在windows下:
seq 4| xargs -I {} -P 4 sqlplus -s -l scott/btbtms@test01p <<EOF
select sysdate from dual;
quit;
EOF

$ seq 4| xargs -I {} -P 4 sqlplus -s -l scott/btbtms@test01p <<EOF
> select sysdate from dual ;
> quit;
> EOF
--//沒有任何輸出!!
$ seq 4| xargs -I {} -P 4 sqlplus -s -l scott/btbtms@test01p <<EOF^Jselect sysdate from dual ;^Jquit;^JEOF^J
--//沒有任何輸出!!
--//注:^J,在linux下,ctrl+v,ctrl+J
--//可以發現xargs+here doc不能正常工作.

3.測試:
--//使用bash -c呼叫看看。
$ seq 4 | xargs -IQ bash -c "sqlplus -s -l  scott/btbtms@test01p <<EOF^Jselect sysdate from dual ;^Jquit^JEOF^J"
SYSDATE
-------------------
2021-02-11 20:00:19

SYSDATE
-------------------
2021-02-11 20:00:19

SYSDATE
-------------------
2021-02-11 20:00:20

SYSDATE
-------------------
2021-02-11 20:00:21

--//必須呼叫bash -c透過引號包裹起來.上班在真正的linux環境測試看看.

3.在真正的linux環境測試:
SCOTT@book> @ ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

$ seq 2| xargs -I {} -P 2 sqlplus -s -l scott/book <<EOF
> select sysdate from dual ;
> quit;
> EOF

$ seq 2| xargs -I {} -P 2 bash -c "sqlplus -s -l scott/book <<EOF
> select sysdate from dual ;
> quit;
> EOF
> "

SYSDATE
-------------------
2021-02-18 08:31:11

SYSDATE
-------------------
2021-02-18 08:31:11

--//必須呼叫bash -c透過引號包裹起來.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2757410/,如需轉載,請註明出處,否則將追究法律責任。

相關文章