我有一個程序,我想通過傳遞來自shell變量的參數來調用。在整個這個問題中,我將假設它是由通過shell變量傳遞包含空格的參數
#!/bin/sh
echo $#
即它打印出傳遞給它的參數的數量。我們稱之爲count-args
。
我把我的計劃是這樣的:
X="arg1 arg2"
count-args $X
這工作得很好。但是現在我的一個論點裏面有一個空白空間,我無法找到逃避它的方法,例如,下面的東西不起作用:
X="Hello\ World"
X="Hello\\ World"
X="'Hello World'"
在所有的情況下,我的程序count-args
打印出2
。我想找到一種方法,以便我可以傳遞字符串Hello World
,並且它返回1
。怎麼樣?
只是澄清:我不想將所有參數作爲單個字符串傳遞,例如
X="Hello World"
count-args $X
應打印出來2
。我想要一種傳遞包含空格的參數的方法。
你自相矛盾。 '''X =「Hello World」; count-args $ X'''應該打印出'''1'''。爲了實現這個用戶引用,用戶1934428顯示:'''「$ X」'''。如果你希望將這個單個字符串解釋爲多個參數,那麼你就會犯這個錯誤:http://mywiki.wooledge.org/BashFAQ/050! – dekkard
@dekkard:由於我找到了一種方法來完成我想要的任務,我相信我的要求是一致的。但是,感謝那個鏈接,這非常有幫助。 –