.bashrc 函数在 Cygwin 上不起作用

.bashrc 函数在 Cygwin 上不起作用

我最近安装了最新版本的 Cygwin。现在我只是在配置一些要使用的别名和函数。Cygwin 正在.bashrc正确读取文件,因为一些别名正在工作,我只是对这个函数有疑问:

sublime () {
    cygstart "c:/Program Files (x86)/Sublime Text 2/sublime_text.exe" "`cygpath -w $1`" 
}

我想要实现的是 Cygwin 允许我做这样的事情:

tom@tom-pc ~
$ sublime myfile.ext

而不是这样:

tom@tom-pc ~
$ cygstart "c:/Program Files (x86)/Sublime Text 2/sublime_text.exe" myfile.ext

我该如何解决这个问题?我尝试使用单引号并转义路径字符串,但没有任何效果... 也不知道使用哪种编程语言来执行此功能,所以我无法解决这个问题。

答案1

编辑:评论帖子后答案已完全修改

问题似乎在于您的代码.bashrc有两个部分,中间用 隔开[[ "$-" != *i* ]] && return。第一部分针对所有 shell 执行,第二部分仅针对交互式 shell 执行。函数定义位于第二部分,因此该函数未在非交互式 shell 中定义。

解决方法:放在行sublime () { ... }return

相关内容