别名-如果文件存在,则打开vs代码工作区

时间:2019-06-17 15:55:47

标签: bash visual-studio-code

我正在尝试通过别名打开一个工作空间(如果存在工作空间文件):

从别名“ co”校准后,此方法不起作用

alias co=[ -f $(basename $(PWD)).code-workspace ] && code $(basename $(PWD)).code-workspace || code .

但是它可以在另一个终端上工作

[ -f $(basename $(PWD)).code-workspace ] && code $(basename $(PWD)).code-workspace || code .

你知道为什么吗?

1 个答案:

答案 0 :(得分:0)

该字符串需要加引号。

alias co='[ -f $(basename $(PWD)).code-workspace ] && code $(basename $(PWD)).code-workspace || code .'

但是,功能要好得多。无需将所有内容都塞进一行。

co() {
    if [ -f "$(basename "$PWD")".code-workspace ]; then
        code "$(basename "$PWD")".code-workspace
    else
        code .
    fi
}

最好使用if / else而不是&&||Greg's Bash Guide说:

  

如果我们要进行简单的错误检查,则使用条件运算符既简单又简洁。但是,当我们要在条件成立的情况下运行多个语句或需要评估多个条件时,情况就会变得更加危险。

     

...

     

通常,在一个命令中将多个不同的控制运算符串在一起不是一个好主意。 &&||在简单情况下非常有用,但在复杂情况下则没有。