簡體   English   中英

在命令行中將參數傳遞給ksh腳本時,請轉義反引號-grave(`)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM