在bash中,是否可以挂起脚本,让用户输入一些命令,然后在完成脚本后恢复脚本?

时间:2018-08-03 17:35:07

标签: bash

我可能以错误的方式来处理此问题,但是我目前正在编写一个脚本,该脚本将在环境之间部署一些文件。该脚本将从开发服务器中提取这些文件,并且需要进行手动编辑,以便它们一旦部署在测试集群上便可以正常工作。

我希望用户能够在此部署脚本的中间使用vim进行这些编辑,然后再将该文件复制到测试集群中的其他服务器。然后,他们可以表示已经完成,脚本将从中断的地方继续执行。这可能吗?

1 个答案:

答案 0 :(得分:1)

如果脚本是交互式运行的,只需在文件上调用一个编辑器:

#!/bin/bash
echo "hello world" > myfile.txt
${EDITOR:-nano} myfile.txt

echo "Here's what you ended up saving:"
cat myfile.txt

这将打开用户的首选编辑器(nano的后备功能),并且直到用户退出编辑器后才继续。这类似于使用git commit时编辑器的打开方式。

您可以类似地为用户提供交互式外壳:

#!/bin/bash
echo "Please run any commands you want, and 'exit' when done"
bash
echo "Ok, continuing"

在这种情况下,shell启动,用户可以运行所需的任何命令,当他们使用exit或Ctrl + D退出shell时,脚本将继续。