创建一个带有参数的 bash 函数作为别名使用

创建一个带有参数的 bash 函数作为别名使用

我意识到我的文件夹遵循特定的结构,并希望更快地使用 cd 访问它们,因此我尝试使这个别名/函数表现如下:

cdc glm 03

相当于

cd ~/Documents/7glm/week03

我尝试定义这样的函数(在 ./bashrc 中),但它不起作用。运行它不会粘贴参数:

cd ~/Documents/7/week

功能:

cdc () {
    if [ $# -lt 2 "$1" ]; then
        echo  "Usage: cdc <folder_name> <folder_number>"
    else
        folder_name="$1"
        folder_number="$2"
        cd ~/Documents/7"$foldername"/week"$foldernumber"
    fi
}

我做错了什么(对 bash 很陌生)?

谢谢!

答案1

您需要注意两个问题:

  • [ ... ]第一个是运算符周围的测试括号内的参数太多-lt...即2 "$1"

  • 第二个是设置和扩展中的参数命名不一致...例如folder_name"$foldername"

...因此,你的功能应该是:

cdc () {
    if [ $# -lt 2 ]; then
        echo  "Usage: cdc <folder_name> <folder_number>"
    else
        folder_name="$1"
        folder_number="$2"
        cd ~/Documents/7"$folder_name"/week"$folder_number"
    fi
}

相关内容