crontab -e 停止为非 root 用户工作,/bin/sh: 1: mvim: 未找到,ubuntu 22.04

crontab -e 停止为非 root 用户工作,/bin/sh: 1: mvim: 未找到,ubuntu 22.04

该命令crontab -e在非root用户帐户下停止工作并出现错误:

/bin/sh: 1: mvim: not found
crontab: "mvim" exited with status 127

但是,对于具有 权限的 root 用户,它仍然有效sudo。我不知道发生了什么变化,只是常规aptitude升级。

更新:我在我的 中发现了这一点.zshrc。将其注释掉即可解决问题。

# Preferred editor for local and remote sessions
if [[ -n $SSH_CONNECTION ]]; then
  export EDITOR='vim'
else
  export EDITOR='mvim'
fi

答案1

默认情况下,crontab -e将在当前环境中搜索(按顺序)VISUALEDITOR变量,并尝试使用其值作为打开 crontab 文件的编辑器。

因此,您大概在用户环境中设置了EDITOR=mvim或(也许您打算使用 Neovim 编辑器,但输入错误了?)。您可以在 bash 中使用 检查。VISUAL=mvimnvimdeclare -p VISUAL EDITOR

当运行时sudo(除非使用-E--preserve-env开关),crontab -e将在新的、最小的环境中执行,其中不包含用户EDITORVISUAL变量。

您可以在命令行上暂时覆盖该设置,例如

VISUAL=/bin/nano crontab -e

要持久地修复该问题,请找到您设置这些变量的位置(可能是您的.profile.bashrc文件),然后将它们设置为有效的编辑器程序,或者取消设置它们 - 这将导致crontab -e恢复到系统的默认nano编辑器。

相关内容