首页 > 解决方案 > 如何在 bash 中创建动态别名(条件命令)?

问题描述

如果有第二个参数,我想为“代码文件”(VS Code)创建快捷方式,或者如果单个命令行中没有参数,我想为“清除”创建快捷方式,但我不知道 bash 语法是如何工作的。

通过查看我创建的 mkcd (mkdir & cd) 快捷方式:

function mkcd {
  if [ ! -n "$1" ]; then
    echo "Enter a directory name"
  elif [ -d $1 ]; then
    echo "\`$1' already exists"
  else
    mkdir $1 && cd $1
  fi
}

我尝试做同样的事情,但错误显示'意外标记'else'附近的语法错误'

function c {
  if $1 then 
    code $1
  else
    clear
  fi
}

标签: bashif-statementvisual-studio-code

解决方案


您的语法错误是if $1 then缺少分号(例如if $1; then),但请继续阅读... UNIX 中没有“快捷方式”。有脚本、函数和别名。看起来您想创建一个名为的函数,以在给定参数时c调用某个命名的命令,而在其他情况下调用其他命名的命令。那将是:codeclear

c() {
    if (( $# > 0 )); then
        code "$*"
    else
        clear
    fi
}

推荐阅读