2016-02-25 2 views
1

Скажет, у меня есть эта функция:Как вызвать функцию внутри другой функции в Shell Script?

function run_sanity_check(){ 
    echo -e "This is test level 1\n" 
    echo -e "This is test level 2\n" 
} 

и эта другая функция:

function run_test(){ 
    ... environment setup routine runs here 
    echo -e "Running tests...\n" 

    run_sanity_check --> this would be my call for the function above 
} 

Когда я называю "run_test" Я получаю эту ошибку: функцию: не найден

Любой помощь оценили.

+1

Я думаю, что вы хотите либо parens, либо ключевое слово 'function', но не оба. Ваша проблема заключается не в вызове, а в определении. См. Http://tldp.org/LDP/abs/html/functions.html –

ответ

1

Как говорится в комментарии Брайана, вам необходимо использовать либо function, либо (), но не оба.

На основании the documentation действуют все следующие.

function run_sanity_check{ 
    echo -e "This is test level 1\n" 
    echo -e "This is test level 2\n" 
} 


run_sanity_check(){ 
    echo -e "This is test level 1\n" 
    echo -e "This is test level 2\n" 
} 

Следующий сценарий печатает ожидаемый выход.

run_sanity_check(){ 
    echo -e "This is test level 1\n" 
    echo -e "This is test level 2\n" 
} 

run_test(){ 
    echo -e "Running tests...\n" 

    run_sanity_check 
} 

run_test 
+0

Я удалил ключевое слово «function» и теперь полностью игнорирует вызов внутренней функции. – leofelipe

+0

@leofelipe, вы удалили его из обоих? – merlin2011

+0

@ merlin2011, Да, я сделал. – leofelipe

Смежные вопросы