В настоящее время я использую эту функцию для переноса исполняемых команд и регистрации их выполнения, а также возврата кода и выхода в случае ненулевого кода возврата.
Однако это проблематично, поскольку, по-видимому, он выполняет двойную интерполяцию, делая команды с одинарными или двойными кавычками в них, разбивая script.
Можете ли вы порекомендовать лучший способ?
Здесь функция:
do_cmd()
{
eval $*
if [[ $? -eq 0 ]]
then
echo "Successfully ran [ $1 ]"
else
echo "Error: Command [ $1 ] returned $?"
exit $?
fi
}