Я хотел бы запустить команду из нескольких «штук».
php="php"
options="-l"
for f in `git diff-index --cached --name-only HEAD | grep -e '\(php\|phtml\)$'`; do
if [ -f $f ]; then
# Here I want to run my command defined
# in $php and $options and put the result in
# $php_lint var
# like this command would do:
# php_lint=$(php -l $f)
# but with something like that:
# php_lint=eval $php $options $f
fi
done
Как это сделать?
Обновление:
После борьба за конкретный момент, я задал этот вопрос:
https://stackoverflow.com/questions/43760897/bash-error-command-not-found-running-a-command-stored-in- var /Пожалуйста, посмотрите, он также может помочь вам.
Поместите параметры в массив и раскройте его как "${options[@]}"
Пример
$ cmd=ls
$ options=(-a -l -d)
$ f="foo"
, затем
$ result=$("$cmd" "${options[@]}" "$f")
, давая
$ echo "$result"
drwxrwxr-x 2 user user 4096 Apr 20 08:07 foo
Поместите параметры в массив и раскройте его как "${options[@]}"
Пример
$ cmd=ls
$ options=(-a -l -d)
$ f="foo"
, затем
$ result=$("$cmd" "${options[@]}" "$f")
, давая
$ echo "$result"
drwxrwxr-x 2 user user 4096 Apr 20 08:07 foo
Поместите параметры в массив и раскройте его как "${options[@]}"
Пример
$ cmd=ls
$ options=(-a -l -d)
$ f="foo"
, затем
$ result=$("$cmd" "${options[@]}" "$f")
, давая
$ echo "$result"
drwxrwxr-x 2 user user 4096 Apr 20 08:07 foo
Поместите параметры в массив и раскройте его как "${options[@]}"
Пример
$ cmd=ls
$ options=(-a -l -d)
$ f="foo"
, затем
$ result=$("$cmd" "${options[@]}" "$f")
, давая
$ echo "$result"
drwxrwxr-x 2 user user 4096 Apr 20 08:07 foo