在shell中讀入檔案,如果取消''反斜槓的轉義

Steven1981發表於2010-08-17

cat $SQLFILE | while read -r LINE

-r Backslash does not act as an escape character. The backslash is considered to be part of the
line. In particular, a backslash-newline pair may not be used as a line continuation.

[@more@]


我們來看一下效果:(注意read後面的-r)

[root@im_ctuallot2 dmp-heyf]# cat del_on_db1111.sql
delete from ctulog.db_allot where id='cntaobao[;'[]';
delete from ctulog.db_allot where id='cntaobaogirl's kiss';
delete from ctulog.db_allot where id='cntaobaosxzcdfwehjkil'';
delete from ctulog.db_allot where id='cntaobao江陰的許文強'';

[root@im_ctuallot2 dmp-heyf]# cat debug.sh
#!/bin/bash
DBID=1111
SQLFILE=del_on_db${DBID}.sql
cat $SQLFILE | while read LINE
do
echo -e "$LINE"
done

[root@im_ctuallot2 dmp-heyf]# sh debug.sh
delete from ctulog.db_allot where id='cntaobao[;'[]';
delete from ctulog.db_allot where id='cntaobaogirl's kiss';
delete from ctulog.db_allot where id='cntaobaosxzcdfwehjkil'';
delete from ctulog.db_allot where id='cntaobao江陰的許文強'';


[root@im_ctuallot2 dmp-heyf]# cat debug.sh
#!/bin/bash
DBID=1111
SQLFILE=del_on_db${DBID}.sql
cat $SQLFILE | while read -r LINE
do
echo -e "$LINE"
done
[root@im_ctuallot2 dmp-heyf]# sh debug.sh
delete from ctulog.db_allot where id='cntaobao[;'[]';
delete from ctulog.db_allot where id='cntaobaogirl's kiss';
delete from ctulog.db_allot where id='cntaobaosxzcdfwehjkil'';
delete from ctulog.db_allot where id='cntaobao江陰的許文強'';

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

相關文章