我最近安装了最新版本的 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
。