使用 shell 脚本使用 vi/vim 追加文件

to append the file using vi/vim using shell script

我正在尝试编写一个 shell,它会在一个“.txt”文件中附加一些数据(存储在一个变量中)。我正在尝试使用 'vi' 来做到这一点。我知道还有其他工具可以追加文件...但我只需要使用 vi

我试过下面的命令,但不幸的是这个命令没有将数据插入到文件的末尾。:

echo $'i{$var}\E:x\n' |vi file.txt

使用 vi/vim 不允许您就地对文件进行命令行编辑。相反,您可以使用它的命令行等效工具 ex(vi-summary.doc),它应该在任何 POSIX 兼容的 shell.

中可用。
cat file
foo
bar

现在在命令行中使用 ex 实用程序作为

var=dude
printf '%s\n' '$a' "$var" '.' x | ex file

这将就地编辑文件并在文件的最后一行添加文本 dude

cat file
foo
bar
dude

我觉得这个也行

var="value" 
printf "$(cat file.txt)\n$var" > newfile.txt