我意识到我的文件夹遵循特定的结构,并希望更快地使用 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
}