В настоящее время я пишу программу установки для своей компании, чтобы мы могли легко настраивать новые машины. Одна его часть представляет собой серию модулей CPAN, которые устанавливаются с помощью отдельных perl -MCPAN -e 'install "Module::Name"'
команд. Я сделал массив модулей (около 200), который устанавливается через цикл foreach в скрипте bash. Однако теперь я хочу проверить статус выхода установки модуля перед запуском новой, возможно ли это? Вот что я пробовал до сих пор:
for i in "${CPANmodules[@]}"
do
echo -e "\033[1;32mInstalling CPAN module $i \033[0m"
perl -MCPAN -e "install \"$i\""
if [ $? -ne 0 ]
then
echo "Error installing module $i"
fi
done
Я также пробовал следующее, но безуспешно:
perl -MCPAN -e 'install "Madeup::Modulename"'
perl -e 'print $?'
Однако это всегда возвращает 0, даже если модуль даже не существует.
Любая помощь будет оценена по достоинству.
'install "Madeup::Modulename" or exit 1'
? - person Tom Fenech   schedule 15.09.2014