🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
**holle world进入shell编程的世界** 用`vim test.sh`新建一份源码如下: ~~~ #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH #上边三行是固定格式,声明使用的shell,声明环境变量 echo -e "holle world!\n" exit 0 ~~~ ~~~ sh test.sh ./test.sh ~~~ 用以上两种方式都可以执行sh文件。 这就是一个基本的shell脚本实例 * * * * * **Shell Script默认变量** ~~~ #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH echo "The Script name is ==>$0" echo "Total parameter is ==>$#" ["$#" < 2] && echo "The number of parameter is less than 2. stop here."\ && exit 0 echo "your whole parameter is ==>'$@'" echo "The 1st parameter is ==>$1" echo "The 2st parameter is ==>$2" ~~~ 代码说明: $# 代表后接参数的"个数" $@ 代表每个参数变量的内容 $0 代表文件名 $1 第一个参数 $2 第二个参数 * * * * * **条件判断** ~~~ #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH read -p "Plase input (Y/N):" yn #获取输入 if [ "$yn" == "Y" ] || [ "$yn" == "y"] ; then echo "OK,Continue" elif [ "$yn" == "N" ] || [ "$yn" == "n"] ; then echo "NO,Stop!" else echo "I don't know what you choice is" fi #用fi结束判断语句 ~~~ **函数功能和case分支(类似C的函数和switch语句)** ~~~ #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH #必须在代码头部声明函数 function printit(){ echo "Your choice is $1" } echo "This program will print your choice !" case $1 in "one") printit 1 ;; "two") printit 2 ;; "three") printit 3 ;; *) echo "Usage $0 {one|two|three}" ;; esac ~~~ **不定循环和固定循环** 不定循环: ~~~ #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH s=0 #累加数 i=0 #计数器 while [ "$i" != "100" ] do i=$(($i+1)) s=$(($s+$i)) done echo "The result of '1+2+3+...100' is ==>$s" ~~~ 固定循环: ~~~ #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH read -p "Plase input a number, I will count 1+2+..your_input:" num s=0 for (( i=1; i<=$num; i=i+1)) do s=$(($s+$i)) done echo "The result of '1+2+..+$num' is ==> $s" ~~~ * * * * * **shell script 的追踪与调试** `sh [-nvx] script.sh` > -n 不执行script,仅查询语法错误,无错误不回显 > -v 在执行script前,先将script内容输出到屏幕上 > -x 将使用到的script内容显示到屏幕上 和其它的任何编程语言一样,最好的学习方式是多看多写,熟能生巧也。 试着模仿别人的代码修改成自己的样式,多加练习。