繁体   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