所以我这么做了:

function wtfman(){
  local command="vi /the/path/file.txt"
  $($command)
}

希望程序在这条路上打开vi
但是,当我执行wtfman时,它会返回
Vim: Warning: Output is not to a terminal

我做错了什么?我该如何改革这个功能,使它相应地打开vi,而不仅仅是抱怨?我想要一个命令存储在一个字符串中,我想执行该字符串指定的命令。它适用于其他一切,但不适用于vi(可能是因为vi的全屏特性?)

最佳答案

在子shell中执行时,请改用eval

function wtfman(){
  local command="vi /the/path/file.txt"
  eval "$command"
}

或者只是…
function wtfman(){
  local command="vi /the/path/file.txt"
  $command
}

甚至只是…
function wtfman(){
  vi /the/path/file.txt
}

关于linux - 使用bash $命令执行vi,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19438969/

10-13 04:55