是否有基于光标的界面来改变环境变量?

是否有基于光标的界面来改变环境变量?

我经常需要更改长环境变量的一小部分(尤其是路径),并通过将其粘贴到编辑器中并在那里进行更改或执行等效操作。

是否有一些小而方便的实用程序可以使用命令行上的光标编辑环境变量?

我想我总是可以做一个,但我希望已经有一些我不知道的东西。

答案1

这是我使用的(ksh 语法但也应该适用于 bash):

function viPath
{
  typeset _path=${1:-PATH}
  typeset _separator=${2:-:}
  eval echo "\$$_path" | tr $_separator '\n' >~/.path
  vi ~/.path
  eval _path=$(cat ~/.path | tr '\n' $_separator)
  eval ${1:-PATH}=$(eval echo $_path | sed 's/.$//')
  \rm ~/.path
}

答案2

我想不出有什么方法可以让你直接在命令行上交互编辑它,但有办法让它比你描述的更方便。如果这是一个短期的改变,你只需要添加向路径添加一些内容,您可以自行引用当前值。例如,在 Bash 中:

PATH=$PATH:/ADDITIONAL/PATH

或者如果你想改变优先级,你可以在前面加上

PATH=/ADDITIONAL/PATH:$PATH

您还可以通过将值回显到临时文件中来节省剪切和粘贴的时间

echo $PATH > tempfile.txt

如果您需要进行更复杂或永久的更改,您可以在等效的 rc 和/或配置文件中引用和编辑环境变量。如果它们尚不存在,您可以使用 echo 方法使它们处于可编辑状态(只需确保使用 >> 附加而不是覆盖)。或者,在 vi 中,您也可以使用

:r!echo $PATH

在 emacs 中是

C-u M-! echo $PATH

将输出插入到您正在处理的文件中。

相关内容