Ошибки сценария оболочки?

Я пытаюсь создать интерактивный сценарий оболочки bash, чтобы упростить установку и настройку почтового сервера postfix, но они по-прежнему вводят команды, а затем оболочка запускает их, но я получаю эту ошибку не знаю почему.

Эти две строки дают мне ошибку «Слишком много аргументов»

if test $VAR1 = sudo apt-get install postfix

и

until test $VAR1 = sudo apt-get install postfix

Спасибо.

3
задан 8 September 2013 в 02:33

1 ответ

Вам нужно процитировать аргументы test, чтобы они не «ломались» на пустом месте, т. Е. Если

$ var1="sudo apt-get install postfix"

, то

$ if test $var1 = sudo apt-get install postfix; then echo "Match"; fi
bash: test: too many arguments

, но

$ if test "$var1" = "sudo apt-get install postfix"; then echo "Match"; fi
Match

То же самое применимо, если вы используете тестовую конструкцию [ ... ]

if [ "$var1" = "sudo apt-get install postfix" ]; then echo "Match"; fi

В качестве отступления, рекомендуется не использовать заглавные буквы для имен ваших переменных - заглавные буквы обычно резервируются для системных переменных. .

0
ответ дан 8 September 2013 в 02:33

Другие вопросы по тегам:

Похожие вопросы: