在 zsh 中使用默认输入读取一行

sev*_*evo 3 zsh line-editor

此功能可用于帮助用户输入对某些文本的修改。

 function change { bash -c "read -ei \"$1\" temp && echo \$temp" }
Run Code Online (Sandbox Code Playgroud)

什么是惯用的 zsh 方式来做类似的事情?

Gil*_*il' 6

随着vared内置。

change () {
  local temp=$1
  vared temp
  print -lr -- $temp
}
Run Code Online (Sandbox Code Playgroud)

如果你想在你的脚本中使用用户稍后输入的字符串,它只是

temp='initial value'
vared temp
Run Code Online (Sandbox Code Playgroud)