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

时间:2019-07-15 05:00:52

标签: bash if-statement visual-studio-code

如果有第二个参数,我想为“代码文件”(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
}

1 个答案:

答案 0 :(得分:1)

您的语法错误是if $1 then缺少分号(例如if $1; then),但请继续阅读...在UNIX中没有“快捷方式”。有脚本,函数和别名。似乎您想创建一个名为c的函数,以在给定参数时调用名为code的某些命令,否则创建名为clear的其他命令。那应该是:

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