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