bash - Bash - 对话框 msgbox 管道进入仪表
问题描述
在此代码上:
#!/bin/bash
for i in {1..50}; do
#if [ ! $(jobs -rp | grep $pid) ]; then
dialog --msgbox "Instance initilation failure!" 0 0
# return 1
#fi
sleep 1
echo $((i * 2))
done | dialog --title "Initiating instance" --gauge "Please wait..." 10 60 0
dialog --msgbox
正在通过管道输入,因此gauge
仪表不起作用,并且 msgbox 没有出现。
有没有可能避免这种情况发生?要显示 msgbox,然后输入return
?
解决方案
也许只是将对话调用放在循环中。我建议如下:
#!/bin/bash
for i in {1..5}; do
#if [ ! $(jobs -rp | grep $pid) ]; then
dialog --msgbox '"Instance initilation failure!"' 0 0
# return 1
#fi
(
echo "$((i * 2))"
sleep 1
) | dialog --title "Initiating instance" --gauge "Please wait..." 10 60 0
done
推荐阅读
- java - 在 Android 10 上保存并插入视频到画廊
- asp.net - Inetpub 文件夹创建
- python - 如何从 url 中提取文本 pdf 而无需在 Python 中下载
- django - 无法将图像文件上传到我的 django 数据库
- flutter - 需要在 setState 完成后执行任务
- c++ - 在向量中使用 cbegin 和 cend
- excel - 如何根据所选月份在第三个上列出来自两个不同工作表的数据?
- r - R中没有替换的随机有序样本
- c# - 如何将查询字符串映射到列表字典
- firebase - CloudFirestorePlugin.java:235: 错误: 找不到符号, public void onFailure(@NonNull Exception e) { 符号: 类 NonNul