zsh vared 命令的 bash 等价物是什么?

Car*_*rlo 5 bash zsh

我看到使用zsh vared您可以即时编辑指定的环境变量。bash是否有等效的命令?
谢谢

Dan*_*eck 6

我不知道有什么可以像zsh's varedinbash那样开箱即用的。

但是,您可以定义一个函数,该函数允许您使用例如编辑环境变量的值vim

function vared {
  [[ $# -eq 1 ]] || { echo "Usage: vared VARNAME" >&2 ; return 1 ; }
  tmpfile=$( command mktemp -t vared.XXXX )
  echo "${!1}" > "$tmpfile"
  command vim "$tmpfile" && export $1="$(< "$tmpfile" )"
  command rm "$tmpfile"
}
Run Code Online (Sandbox Code Playgroud)

将其称为vared PATH.

它有什么作用?它创建一个临时文件,将指定变量的当前值写入文件,并vim以临时文件作为参数打开。现在您需要编辑值、保存并退出vim(您可以退出而不保存文件以跳过保存更改)。之后,文件的内容被设置为新的变量值,整个文件被导出,临时文件被删除。command有必要跳过外壳别名和函数查找,例如在最后删除文件之前会询问的rm别名rm -i

如果该变量不存在或不是环境变量,则在之后。