我是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
如何获得理想的结果?
答案 0 :(得分:2)
这是因为args默认是由空格分隔的。你可以通过双引用args来绕过这个:
SimpleFunction "$( cat myfile | grep -i '2')" ": line 2"
答案 1 :(得分:0)
cat / grep命令的输出是整行2 wkdfgc sdkj ds
所以当这个字符串传递给SimpleFunction时,2
是第一个参数,wkdfgc
是第二个参数等等。
当您echo $1
和echo $2
时,您将打印前两个参数。如果要打印整行,请执行echo $*