我需要使用 shell 脚本打开和关闭文件。
我的shell.sh
vi adc.c
当我执行 myshell.sh 时,它会打开一个文件。
我需要使用 shell 脚本关闭该文件。
我应该在 myshell.sh 中包含什么命令
而不是使用 vi,尝试使用 touch ?
touch /opt/adc.c
触摸是创建新文件和空文件的最简单方法。它还用于更新时间戳。然后更新文件内容。
echo "Your File contents" > /opt/adc.c
在这种情况下,您不需要“关闭”您的文件。
我想使用 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 也有类似的页面)。
在这种情况下,您所说的“关闭”是什么意思并不是特别清楚。
通常,打开和关闭是低级文件系统操作;您打开一个文件,通过读取或写入执行所需的 I/O,然后在完成后关闭它。
当您像显示的那样调用它时,vi 不太可能真正地、物理地打开命名文件。更有可能打开文件,读取其内容,然后关闭它。当您告诉 vi 将新内容保存到磁盘时,该文件将被重新打开以进行写入,但它不会在保存之间保持打开状态。至少我不会这么认为,但我不是 vi 用户。
当您从外部“关闭”文件时,您希望 vi 做什么?