|
|
1
137
您应该加引号,而且您的函数声明是错误的。
和其他人一样,它也适用于我。告诉我们您使用的是什么版本的shell。 |
|
|
2
17
上述问题的另一个解决方案是将每个字符串设置为一个变量,调用变量由文字美元符号表示的函数。
然后输出:
在试图解决类似的问题时,我遇到了Unix的问题,我认为我的变量被空间删除了。我试图通过使用
下面是我的代码的前状态和后状态的完全功能。 before-非功能代码
功能后代码
|
|
|
3
6
这个问题最简单的解决方案是你只需要使用
|
|
|
4
5
你对MyFunction的定义是错误的。应该是:
或:
不管怎样,它看起来很好,在bash 3.2.48上对我来说也很好。 |
|
|
5
1
适用于我的简单解决方案——引用$@
我可以验证实际的grep命令(多亏了set-x)。 |
|
|
6
1
我晚了9年,但更具活力的方式是
|
|
|
7
0
如果将初始文本设置为字符串类型变量,则可以扩展此问题,例如:
在这种情况下,如果不将状态消息变量作为字符串(由“”包围)向前传递,它将被拆分为多个不同的参数。 “$变量” :当前曲目是ABC在DEF时的CDE $变量 : |
|
|
8
-2
有同样的问题,实际上问题不是函数或函数调用,而是我作为参数传递给函数的。 该函数是从脚本体“main”调用的,因此我从命令行传递了“st1 a b”“st2 c d”“st3 e f”,并使用myfunction将其传递给函数$* 当它扩展为一组字符时,$*会引起问题,这些字符将在使用空格作为分隔符的函数调用中解释。 解决方案是将显式参数处理中对函数的调用从“main”改为对函数的调用:然后调用将是MyFunction“$1”“$2”“$3”,它将保留字符串中的空白,因为引号将分隔参数… 因此,如果一个参数可以包含空格,那么应该在所有函数调用中显式地处理它。 因为这可能是长时间搜索问题的原因,所以最好不要使用$*传递参数… 希望这能帮助某人,某天,某个地方… 简。 |