簡體   English   中英

bash將可執行參數傳遞給函數

[英]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 $1echo $2 ,您正在打印前兩個參數。 如果要打印整行,請echo $*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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