gpt4 book ai didi

bash - 使用 exec vi 时出错

转载 作者:行者123 更新时间:2023-11-29 09:46:28 25 4
gpt4 key购买 nike

#!/bin/bash

if [ $# -ne 1 ]
then
echo "USAGE:vitest filename"
else

FILENAME=$1

exec vi $FILENAME <<EOF
i
Line 1.
Line 2.
^[
ZZ
EOF

fi

exit 0

我正在尝试使用此处的文档和命令通过 Exec vi 输入第 1 行和第 2 行。

运行脚本时,它会给我以下信息:

Vim(?):Warning: Input is not from a terminal
Vim: Error reading input, exiting...

Press ENTER or type command to continueVim: Finished.
Vim: Error reading input, exiting...

Vim: Finished.

最佳答案

您想以 ex 模式启动 vi,并对脚本做一些小改动。

vi -e "$FILENAME" <<EOF
i
Line 1.
Line 2.
.
wq
EOF

exec 几乎肯定是不必要的,特别是因为您在 vi 之后有一个 exit 命令。 exec 用于将当前脚本替换为给定的命令;不需要简单地执行命令。


UNIX 文本编辑器简史:

  • ed 是最初的编辑器,设计用于使用电传打字机而不是视频终端。
  • exed 的扩展版本,旨在利用视频终端。
  • vi 是一个为 ex 提供全屏可视模式的编辑器,与 ed 使用的面向行的界面形成对比和 ex

关于bash - 使用 exec vi 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39738758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com