命令中带引号的星号未按预期运行

时间:2020-03-16 09:27:40

标签: bash

在Bash中,我的个人资料中有一个功能:

FCT () { /usr/bin/someProg -id=myUser -pa=myPass $*; }

现在,我可以完美地启动someProg并执行我想要的操作。 但是当我想像这样使用它时:

FCT -comma 'select * from table'

是忽略单引号并将*替换为当前目录中的所有文件

FCT -comma select \* from table

是一样的...逃脱被忽略

设置为+ f / -f时,它按预期进行,但不希望这样做,因为这对于团队来说很容易。 知道为什么单引号和-escape被忽略吗?

1 个答案:

答案 0 :(得分:1)

有人知道为什么单引号和-escape被忽略吗?

因为$*展开了each parameter separated by the first character in IFS,之后结果也经历了word splitting。因此,无论内容如何,​​生成的参数都将由空格,制表符和换行符分隔。

使用"$@"

相关问题