$ @ в двойных кавычках заменяется несколькими словами. bash -c
принимает строку в качестве параметра, но за ней могут следовать другие слова , которые затем назначаются позиционным параметрам, начиная с $ 0.
Таким образом, вы можете отправить параметры в код внутри bash -c
следующим образом:
Test () { bash -c 'echo $@' -- "$@" ; }
Test "a b" c
Это работает и для вас:
Test () { bash -c 'testargs() { echo $@ ; } ; testargs $@' -- "$@" ; }
Test "a b" c
Если вы хотите сохранить параметры, состоящие из нескольких слов, добавьте double цитаты:
Test () {
bash -c 'testargs() {
for a in "$@" ; do
echo "$a"
done
}
testargs "$@"' \
-- "$@"
}
Test "a b" c
Я использовал Тест
, так как тест
уже существует и может запутать читателей.
¿Ha intentado reinstalar Parallels Tools como dice el mensaje? Eso parecería solucionar el problema que tienes.