Shell脚本的编写


shell脚本编写

shell

Shell 和python都是弱语言

定义变量规则 :   变量名=值                              

shell定义变量的规则:

	1:等号两边不能有空格
					
	2:定义特殊的变量需要用单引号或者双引号结合
	       
	3:定义linux命令需要用反单引号

	区分单引号和双引号的不同和相同点

Shell取值

	使用:echo $变量名     

shell脚本的规则

1:脚本名称使用.sh结尾
2:第一行必须写# !/bin/bash
3:输入语句用read
4:输出语句用:echo
5:   调用的时候
      ./脚本名.sh(权限的问题)
      sh 脚本名.sh
注意点:read可以传递多个数据   read –p”name and passwoed”name  password
      超过的部分都填充在最后一个变量上

参数传递

向.sh文件中传递数据
	格式: sh 脚本名.sh 参数
	
	$1:接收第一个参数~~$n
	$n:文件名称
 	$@:所有参数 
 	$#参数个数

Demo:

比较运算符(数字)

-eq  比较是否相等
-ne  比较不相等
-gt 比较大于
-ge   比较大于等于
-lt   比较小于
-le   小于等于
字符串判断:== ,!=
逻辑运算符     -a与    -o或   !非
((i++))  ((i+=1)) 
s=$(($s+$i))  s=$[$s+$i]  ((s=$s+$i))

注:这个就要你们自己去用了,我就不做案例了

if 语句(分支结构)

格式:

格式:
	if [ 条件 ]
	then
	语句
	else
	语句
	fi

注意:
	 1:  if后面有空格, 2:条件两边有空格, 3:if条件里面存在变量,需要$,而且变量两边需要双引号, 4:if是结束标识

Demo:

if elif语句(分支结构)

if [ 条件 ]
	then
	语句
	elif [ 条件 ]
	then
	语句
	......
	else
	语句
	fi

demo:(我没有调整编码,就当我懒吧)

Case循环语句

格式:

case规则
	case $变量名 in
	"值")
	语句;;
	"值")
	语句;;
	.....
	esac

注意:1:case这第一行以in结尾     2:值可以是字符串也可以是数字, 如果数字范围[0-9]
3:结束语句;; 4:esac结束标志

Demo:

For 循环语句

格式:

for 变量  in   列表
	do
	语句
	done
 	
	试想列表中的元素过多的时候,需要怎么做?

	seq mix step max      注意:mix 开始数据    step:间隔   max 结束数据,如果step为1,可以省略

	注意1: 结束标志done

Demo:

while循环语句

格式:

while [ 条件 ]
	do
	语句
	done


注意:结束done
While后有空格, 参数之间也
注意

Demo:

函数

格式:

定义格式
         函数名(){代码	}
调用格式
          函数名


注意点:必须先定义一个函数,然后再调用它

Demo:

函数参数传递

Demo:

函数返回值

Shell中函数中默认存在返回值
	查看函数的返回值$?

注意点:
如果没有代码错误默认返回值为0,
有代码错误返回1
查看返回值内容:$?


Demo:

个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
原文地址:https://www.cnblogs.com/DunayueBlog/p/13735024.html