[20180926]bash與分號.txt

lfree發表於2018-09-25
[20180926]bash與分號.txt

--//昨天除錯bash shell指令碼時遇到的問題,就是分號忘記轉義,實際上在basg shell中,表示命令連續執行.
--//例子:

$ date; ls -l a.c
Tue Sep 25 20:00:40     2018
-rwxr-xr-x    1 Administ Administ       68 May  7  2016 a.c

--//如果shell指令碼寫成如下:

sqlplus -s scott/book <<EOF
$(seq 1 3| xargs -i{}  echo  select sysdate from dual ; )
quit
EOF

--//執行會報錯.如果單獨執行:
$ seq 1 3| xargs -i{}  echo  select sysdate from dual ;
select sysdate from dual
select sysdate from dual
select sysdate from dual

--//你可以發現輸出中分號丟失了.

$ seq 1 3| xargs -i{}  echo  select sysdate from dual \;
select sysdate from dual ;
select sysdate from dual ;
select sysdate from dual ;

--//分號前使用\轉義,在執行就沒有問題了:

sqlplus -s scott/book <<EOF
$(seq 1 3| xargs -i{}  echo  select sysdate from dual \; )
quit
EOF

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

相關文章