[英]escape backticks - grave( ` ) when passing a argument to a ksh script in command line
我編寫了一個方便的ksh shell腳本,該腳本讀取firstcommand
的輸出,從grep執行一些過濾,並將結果值饋送到othercommand
handy.ksh
#!/usr/bin/ksh
othercommand `firstcommand | grep 'keyword' | cut -d ' ' -f 1`
它工作得很好。 但是,我想通過命令行傳遞“關鍵字”。 通常我可以用$ 1
>handy.ksh TEST
並且在腳本中$ 1將是TEST,但是,我無法逃脫困境,並且$ 1會按字面解釋。
如何逃脫`?
您可以使用$()
代替反引號:
#!/usr/bin/ksh
# test.ksh
echo $(echo "foo bar" | grep "$1" | cut -d ' ' -f 1)
現在您可以這樣稱呼它:
ksh test.ksh foo
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.