用消息框处理鞭梢式仪表中的错误



我正在尝试运行一个whiptailgauge,在运行多个命令时显示进度。我进行了一些错误检查,但由于命令在子shell中运行,我似乎无法在msgbox中显示错误。如有任何帮助,我们将不胜感激!以下是我尝试过的一个示例:

#!/usr/bin/env bash
{
echo 0
some_cmd1
if [ $? -ne 0 ]; then
whiptail --msgbox "error running cmd" 8 48
fi
echo 20
some_cmd2
if [ $? -ne 0 ]; then
whiptail --msgbox "error running cmd" 8 48
fi
...
echo 100
} | whiptail --gauge "checking pre-reqs..." 8 48 0

我也尝试过返回一个状态代码,但我不知道如何使用它,如果它被管道传输到whiptail

#!/usr/bin/env bash
{
echo 0
some_cmd1
if [ $? -ne 0 ]; then
echo "error running cmd"
return 1
fi
echo 20
some_cmd2
if [ $? -ne 0 ]; then
echo "error running cmd"
return 1
fi
...
echo 100
} | whiptail --gauge "checking pre-reqs..." 8 48 0

此外,如果我做错了这件事,也请告诉我!

像这样:

#!/usr/bin/env bash
myfunc() {
echo 0
sleep 1
echo 20
sleep 1
if ! false; then
whiptail --msgbox "error running cmd" 8 48 >&2
return 1
fi
:
echo 100
sleep 1
}
myfunc | whiptail --gauge "checking pre-reqs..." 8 48 0

相关内容

  • 没有找到相关文章

最新更新