我编写了一个 shell 脚本来测试一个 API,该 API 复制文件并在每个文件之后回显其进度。
每个副本之间有两秒钟的睡眠时间,所以我想添加按任意键暂停脚本的功能,以便进行更深入的测试。然后按任意键恢复。
如何在尽可能少的行中添加它?
cha*_*aos 12
您无需在脚本中添加任何内容。外壳允许这样的功能。
T,已停止)jobs终端或列表中的所有已停止的作业。fg(foreground)。它将作业恢复到前台进程组中,并且作业继续运行。看一个例子:
root@host:~$ sleep 10 # sleep for 10 seconds
^Z
[1]+ Stopped sleep 10
root@host:~$ jobs # list all stopped jobs
[1]+ Stopped sleep 10
root@host:~$ fg # continue the job
sleep 10
root@host:~$ # job has finished
Run Code Online (Sandbox Code Playgroud)
小智 6
如果您只想暂停脚本而留在脚本中,那么您可以使用 read 而不是 sleep。
您可以使用
read -t设置读取超时
read -n以读取一个字符(实际上只需按任意键)以继续脚本
由于您尚未提供任何代码,以下是如何使用它的示例。
如果按下 q 则read -n1阻止脚本继续,直到按下某个键。
当按下一个键时,检查被重置,脚本继续正常循环。
while [[ true ]]; do
read -t2 -n1 check
if [[ $check == "q" ]];then
echo "pressed"
read -n1
check=""
else
echo "not pressed"
fi
echo "Doing Something"
done
Run Code Online (Sandbox Code Playgroud)
您还可以添加stty -echo到部分的开头和stty echo结尾,以防止打字弄乱屏幕输出
| 归档时间: |
|
| 查看次数: |
20741 次 |
| 最近记录: |