我可能以错误的方式来处理此问题,但是我目前正在编写一个脚本,该脚本将在环境之间部署一些文件。该脚本将从开发服务器中提取这些文件,并且需要进行手动编辑,以便它们一旦部署在测试集群上便可以正常工作。
我希望用户能够在此部署脚本的中间使用vim进行这些编辑,然后再将该文件复制到测试集群中的其他服务器。然后,他们可以表示已经完成,脚本将从中断的地方继续执行。这可能吗?
答案 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时,脚本将继续。