Ошибка bash на eval, содержащем пустое пространство

Мне нужно запустить параметр передачи bash с помощью формата [variable_name = "value"] следующим образом:

./test.sh ip='164.130.21.98' hostname='whatever' pwd='/test' ftpcmd='CWD debug' user='stefano' 

В скрипте test.sh я хочу присвоить любой переменной соответствующее значение:

 #!/bin/bash eval `echo "$@"` echo $ftpcmd 

Но я получаю prova: command not found ошибка.

Я почти новичок в сценариях оболочки bash, и я не могу понять, что не так в моем параметре ftpcmd='CWD debug' ни как я должен его написать.

Если я попытаюсь заменить eval объявлением, тогда $ftpcmd будет установлен только для CWD вместо CWD debug как я ожидаю.

  • Как выбрать и вывести текст в строке
  • Команда Shell поместить последнюю строку вывода в текущую командную строку
  • Скрипт для разделения строки
  • Как определить конец строки с sed
  • Можно ли показывать текущий номер строки истории при выполнении обратного поиска в bash?
  • Будет ли `cat ~ / foo *> ~ / results / output.txt` сохранять порядок` ~ / foo * `?
  • Приоритет параметров команды?
  • Регулярные выражения внутри строки в AWK, используя if / then структуру управления?
  • One Solution collect form web for “Ошибка bash на eval, содержащем пустое пространство”

    Если вы поставили задания перед скриптом

     ip='164.130.21.98' hostname='whatever' pwd='/test' ftpcmd='CWD debug' user='stefano' ./test.sh 

    переменные доступны в среде сценария. Параметр -k рассматривает все назначения, а не только назначения перед командами, как изменения среды.

     set -k ./test.sh ip='164.130.21.98' hostname='whatever' pwd='/test' ftpcmd='CWD debug' user='stefano' set +k 

    В любом случае eval вообще не требуется и может быть удален.

    Interesting Posts

    systemd: переместить getty в tty2 + и запустить скрипт на tty1

    Как сделать sda1 больше / использовать файлы загрузки по умолчанию в sdb1

    Тайм-аут подключения для подключения ssh в зависимости от местоположения ip?

    Как навсегда изменить разрешение файла / каталога

    Не удается исключить пользователя в директиве match в конфигурации SSHD

    Shift-стрелка не работает в emacs в tmux

    передача переменной ls в grep при выполнении поиска файла работает только внутри каталога

    8G RAM и SSD – насколько большой должен быть обмен?

    Более сжатые методы для обертывания файла, чем использование sed

    Использовать встроенный встроенный bash без цикла while

    Рекомендуемый способ установки программного обеспечения в / usr / local – использовать sudo или chown?

    Что означает «строить с главной ветвью …»?

    Почему экспортирование переменной в оболочке ssh выводит список экспортируемых переменных?

    Абсолютный путь в статистике сухого rsync

    неожиданный EOF при поиске соответствия “ '- скрипт bash

    Linux и Unix - лучшая ОС в мире.