
shell脚本如何调用vi
用户关注问题
在Shell脚本中如何自动使用vi编辑器打开文件?
我想通过Shell脚本自动调用vi编辑某个文件,该怎么实现?
通过Shell脚本调用vi编辑文件的方法
可以在Shell脚本中直接使用vi命令加上文件名,例如:vi filename。这样脚本执行时会启动vi编辑该文件。但要注意,这会暂停脚本,直到vi退出。
有没有办法在Shell脚本中使用vi进行非交互式编辑?
我希望通过Shell脚本使用vi编辑文件,但不想手动操作,能否实现?
利用ex或vi的命令模式进行非交互式编辑
vi其实包含了ex编辑器的命令模式,可以在Shell脚本中通过echo命令传递ex命令给vi,比如:echo ':s/old/new/g
:wq' | vi filename。这样vi会执行替换命令并保存退出,实现无交互式修改。
在Shell脚本调用vi时如何避免脚本卡住等待用户交互?
如果Shell脚本中直接调用vi,会导致脚本停在那里,我应该怎么处理?
避免调用vi时脚本阻塞的方法
vi是交互式程序,直接调用时会阻塞脚本。可以用ex命令或者sed、awk等替代工具完成非交互式编辑。如果确实要用vi,可以考虑使用nohup或&后台运行,但一般不建议。