文章目录
文章底部有完整的源码下载,初学者可以了解学习函数、交互式菜单选择结构、流程控制结构的用法。
📢函数
可以不用function关键字来定义函数,可以直接使用函数名称和花括号来定义函数体。下面是一个示例:
ali() {
echo "我是阿里源"
}
greet # 调用函数,输出"我是阿里源"
需要注意的是,函数必须写在调用前面。
这种方式与使用function关键字定义函数是等效的。在实际编程中,很多人习惯使用第二种方式来定义函数,因为它更加简单直观。但是需要注意的是,这种方式在早期版本的shell中可能不被支持,因此使用时需要考虑兼容性问题。
📢交互式菜单选择结构
select是shell中的一种交互式菜单选择结构,用于在多个选项中进行选择。该结构包含一个提示字符串和若干个选项字符串,用户可以通过键盘输入数字或字母来选择一个选项,然后执行相应的操作。
select语法格式如下:
select i in "清华源" "阿里源"
do
commands
done
其中:
i 是一个变量名,用于存储用户选择的选项字符串;
“清华源” "阿里源"是若干个选项字符串,表示用户可以选择的选项,可以多写几个也行;
commands是一个或多个shell命令,用于在用户选择某个选项时执行。
select结构的作用是使shell脚本变得更加交互化、友好化,提供了一种人性化的方式来让用户进行选择操作,比如在菜单显示、应用程序的升级等方面有广泛的应用。
📢流程控制结构
case语句是一种流程控制结构,用于在一系列可能的选项中进行选择。在shell脚本中,case语句通常用于对变量的值进行匹配处理,以执行相应的命令或操作。
case语句的语法格式如下:
case $i in
"清华源")
command1
;;
"阿里源")
command2
;;
*)
default_command
;;
esac
其中,
i 是需要匹配的变量;
“清华源”、“阿里源"等是匹配模式,当 i 的值与某一模式相同时,将执行相应的命令;
command1、command2等是与匹配模式相对应的命令;
*)是默认匹配,当"清华源”、“阿里源"与 i 匹配时,将执行default_command。
case i in的作用是将变量$i的值与"清华源”、"阿里源"进行匹配,找到与之匹配的第一个选项,并执行该选项对应的command。case语句通常用来替代多个if-else语句,使脚本更加清晰、简洁易读。
完整的清华和阿里换源脚本下载:地址