我需要使用shell脚本打开和关闭文件。
myshell.sh
vi adc.c
当我执行myshell.sh时,它会打开一个文件。
我需要使用shell脚本关闭该文件。
我应该在myshell.sh中包含什么命令
答案 0 :(得分:4)
不使用vi,尝试使用touch?
touch /opt/adc.c
触摸是创建新文件和空文件的最简单方法。它还用于更新时间戳。然后更新文件内容。
echo "Your File contents" > /opt/adc.c
在这种情况下,您不需要“ 关闭 ”您的文件。
答案 1 :(得分:3)
我想使用shell脚本创建一个文件。当我使用'vi'创建一个文件时,我需要手动执行esc + wq
vi
是一个交互式文件编辑器。它允许您打开/创建文件,通过用户交互编辑文件,最后保存文件并退出(ESC-wq
)。您可以在shell脚本中执行此操作(某些应用程序执行此操作以允许用户编辑文本),但如果您只是想以批处理模式创建包含某些内容的文件,而无需用户交互,请使用类似
#!/bin/bash
echo "My contents" > /path/to/local/adc.c
cat /path/to/local/part-r-00000 >> /path/to/local/adc.c
第一行创建一个空文件adc.c
,第二行将part-r-00000
的内容附加到文件中。
首先无需“创建”文件。这是由shell自动完成的。您可能想要浏览Bash: All about redirection(其他shell也有类似的页面)。
答案 2 :(得分:2)
在这种背景下,“关闭”是什么意思并不是特别清楚。
通常,打开和关闭是低级文件系统操作;你打开一个文件,通过阅读或写作完成你想要的I / O,然后在你完成后关闭它。
当你按照你所展示的方式调用它时,vi不太可能真正地,物理地打开命名文件。它更可能打开文件,读取其内容,然后关闭它。当您告诉vi将新内容保存到磁盘时,该文件将重新打开以进行写入,但在保存之间不会保持打开状态。至少我不这么认为,但我不是vi用户。
当您从外部“关闭”文件时,您希望vi做什么?