Выполнение команды, хранящейся в переменной - PullRequest
1 голос
/ 03 ноября 2011

Я хотел бы выполнить серию команд, которые компилируют мою программу.Но, похоже, это не работает.Это мой сценарий

#!/bin/bash

task[0] = $(cd vssl/make/; make clean;)
compile[0] = $(make all)
error[0] = $(echo "We failed at vssl install")

task[1] = $(cd ../../web/make/; make clean;)
compile[1] = $(make install)
error[1] = $(echo "We failed at web install")

eval "$task[0]"
if (eval "$compile[0]"); then
    eval "$task[1]"
    if (eval "$compile[1]"); then
        echo "ALL DONE"
    else
        eval "$error[1]"
    fi
else
    eval "$error[0]"
fi

Я перепробовал множество других методов, где я заменял объявление команды на это, например

task[0] = 'cd vssl/make/; make clean;'

Это всего лишь одна строка ошибки, другие строки говорят, чтоодна и та же ошибка, но каждый раз, когда я получаю одни и те же ошибки, говоря:

./install_everything.sh: line 4: task[0]: command not found

Что именно я здесь не так делаю?Я попытался просто заменить фактическую команду вместо переменных, как эта

#!/bin/bash

cd vssl/make/
make clean
if(make all); then
    cd ../../web/make/
    make clean
    if(make install); then
        echo "ALL DONE"
    else
        echo "We failed at web install"
    fi
else
    echo "We failed at vssl install"
fi

И она работала отлично.Поэтому я весьма озадачен тем, почему мой первый метод не работает.

1 Ответ

3 голосов
/ 03 ноября 2011

Убрать пробел:

task[0] = $(cd vssl/make/; make clean;)
       ^ ^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...