2 回答

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
!是交互模式下的特殊字符(它執(zhí)行命令歷史記錄替換),而不是腳本中的特殊字符。您應(yīng)該以交互方式鍵入此內(nèi)容,還是將其嵌入腳本中?如果是后者,則可以使用雙引號(hào),!這樣就不會(huì)有問(wèn)題。
如果您以交互方式使用此功能,則有很多選擇。一種是將引號(hào)模式混入單個(gè)參數(shù)中,如"double-quoted-section"'single-quoted-section'"another-quoted-section"。這看起來(lái)很奇怪,但效果很好。像這樣的東西:
ldapsearch -h 1.0.24.24 -p 389 -x -t -LLL -S cn \
-D cn=user,ou=resources,o=otherresource,c=xx -w server101 \
-b ou=Non-Staff,ou=people,o=test,c=us \
"(&(objectClass=inetOrgPerson)(createTimestamp<=$month_8)("'!'"(nEApps=*))(nEDHHSNFAccNbr=\00)(nECreatedBy=cioSelfRegistered)(loginTime<=$month_3))" dn
^^^^^
或者,您可以將變量定義為!(使用單引號(hào)),然后在雙引號(hào)內(nèi)使用該變量:
exclamation='!'
ldapsearch -h 1.0.24.24 -p 389 -x -t -LLL -S cn \
-D cn=user,ou=resources,o=otherresource,c=xx -w server101 \
-b ou=Non-Staff,ou=people,o=test,c=us \
"(&(objectClass=inetOrgPerson)(createTimestamp<=$month_8)($exclamation(nEApps=*))(nEDHHSNFAccNbr=\00)(nECreatedBy=cioSelfRegistered)(loginTime<=$month_3))" dn
^^^^^^^^^^^^

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
由于,!
過(guò)濾器僅“需要”單引號(hào)*
,shell會(huì)嘗試將其擴(kuò)展為通配符。
解決方案:逃脫它。
添加回答
舉報(bào)