[英]bash passing executable argument to function
我是bash的新手,我無法弄清楚如何將此結果傳遞給函數。 我有一個看起來像的文件:
1 df sadsd csd c
2 wkdfgc sdkj ds
3 sdjcvh sdch vsd h
4 sjdch sdhc sd
我有一個看起來像的功能
SimpleFunction () {
> echo $1;
> echo $2;
> }
我正在嘗試做類似的事情:
SimpleFunction $( cat myfile | grep -i "2") ": line 2"
我期望輸出看起來像
2 wkdfgc sdkj ds
: line2
但我明白了
2
wkdfgc
我怎樣才能得到理想的結果?
發生這種情況是因為默認情況下,args由空格分隔。 您可以通過雙引號args來繞開它:
SimpleFunction "$( cat myfile | grep -i '2')" ": line 2"
cat / grep命令的輸出是整行2 wkdfgc sdkj ds
因此當將此字符串傳遞給SimpleFunction時, 2
是第一個參數, wkdfgc
是第二個參數,依此類推。
當您echo $1
和echo $2
,您正在打印前兩個參數。 如果要打印整行,請echo $*
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.