如何在bash中创建动态别名(条件命令)?

如何在bash中创建动态别名(条件命令)?,bash,if-statement,visual-studio-code,Bash,If Statement,Visual Studio Code,如果有第二个参数,我想为“code file”和“code”创建快捷方式;如果在单个命令行中没有参数,我想为“clear”创建快捷方式,但我不知道bash语法是如何工作的 通过查看我创建的mkcd mkdir&cd快捷方式: function mkcd { if [ ! -n "$1" ]; then echo "Enter a directory name" elif [ -d $1 ]; then echo "\`$1' already exists" else

如果有第二个参数,我想为“code file”和“code”创建快捷方式;如果在单个命令行中没有参数,我想为“clear”创建快捷方式,但我不知道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
}
您的语法错误是,如果$1,则缺少分号,例如,如果$1;然后继续读下去。。。UNIX中没有快捷方式。有脚本、函数和别名。看起来您希望创建一个名为c的函数,以便在给定参数时调用名为code的命令,否则调用名为clear的命令。那就是:

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