我想创建一个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完成,然后继续。
发布于 2016-03-25 20:55:34
为什么不尝试一个附加的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/ file中搜索以.deb结尾的任何文件名,并在再次搜索之前等待一秒钟。一旦找不到任何文件,while循环就会完成。
https://stackoverflow.com/questions/36227333
复制相似问题