У меня есть несколько сценариев:
functions.sh - имеет много определенных функций, включая work () и abort (), это выглядит так:
#!/bin/bash
abort()
{
message=$1
echo Error: $message ..Aborting >log
exit 7
}
work()
{
cp ./testfile ./test1 #./testfile doesnt exist so non zero status here
if [ $? -eq 0 ];then
echo "variable_value"
else
abort "Can not copy"
fi
}
parent.sh - parentскрипт - это основной скрипт, он выглядит так:
#!/bin/sh
. ./functions.sh
value=$(work)
echo "why is this still getting printed"
В основном у меня есть много функций в файле functions.sh, и я использую этот файл в parent.sh, чтобы сделать доступными все функции.Parent может вызывать любую функцию и любую функцию в functions.sh может вызывать abort, после чего выполнение parent должно быть остановлено, но этого не происходит, parent.sh переходит к следующему шагу.Есть ли способ обойти эту проблему?
Я понимаю, что это происходит из-за значения шага назначения = $ (работа).Но есть ли способ прервать выполнение только при вызове функции прерывания в этом случае?