Звездочка в команде не ведет себя, как ожидалось - PullRequest
0 голосов
/ 16 марта 2020

In Bash У меня есть функция в моем профиле:

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

Теперь я могу отлично запустить someProg и делать то, что хочу. Но когда я хочу использовать его следующим образом:

FCT -comma 'select * from table'

Is игнорирует одинарные кавычки и заменяет * всеми файлами в текущем каталоге

FCT -comma select \* from table

делает то же самое ... побег игнорируется

Когда установлено + f / -f, оно идет, как ожидалось, но нежелательно, так как это должно быть легко для команды. Есть идеи, почему одинарные кавычки и -escape игнорируются?

1 Ответ

1 голос
/ 16 марта 2020

Есть идеи, почему одинарные кавычки и -escape игнорируются?

Поскольку $* расширяет каждый параметр, разделенный первым символом в IFS и после него результат также подвергается разбиению слов . Таким образом, полученные аргументы будут разделены пробелами, символами табуляции и переводами строки, независимо от содержимого.

Использование "$@".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...