我想创建一个shell脚本来在终端上运行一些命令但脚本在我使用终端之前不会停止
示例:
while true ; do
echo -e "type 1 or 2 : "
read answer
case "$answer" in
1 )
xfce4-terminal -e "sudo apt-get update"
;;
2 )
xfce4-terminal -e "sudo apt-get install firefox"
;;
esac
done
我希望while循环停止并等到选项1完成然后继续。
答案 0 :(得分:0)
为什么不尝试一个基本上监听该命令结束的额外while循环?
case "$answer" in
1 )
xfce4-terminal -e "sudo apt-get update"
while [[ $(ps -elf | grep -v "grep" | grep -c "apt-get update") != "0" ]] ; do
sleep 2
done
;;
2 )
xfce4-terminal -e "sudo apt-get install firefox"
;;
esac
以下是评论中对您问题的回答:
while [[ $(find /var/cache/apt/archives -type f -name "*.deb") != "" ]] ; do
sleep 1
done
这将在/ var / cache / apt / archives中搜索以.deb结尾的任何文件名,并在再次搜索之前等待一秒钟。一旦找不到文件,while循环就会完成。