寫了一個腳本導數,需要用到密碼參數,傳給sh腳本卻報錯,試了各種轉義方式都無效,最后得出一個結論,sh的入參轉義是沒有用的.
這應該是sh本身的字符串處理機制,要想轉義生效,必須在腳本里處理,而不是對入參進行轉義.
所以,以db2 connect to xxx user xxx using xxx命令為例,要使入參正確生效,做法就是對 using 之后的密碼轉義:
db2 connect to xxx user xxx using \' $入參 \'
這樣,取得入參后,整個命令執行時,密碼被單引號包裹,就不會再報錯了.