Shel相关编程(四)

Shell变量

  • 变量没有类型
  • 赋值不能加空格
  • 显示输出要加"$"
  • 举例:
    在这里插入图片描述
用户自定义变量
  • 建议使用全大写,方便识别
COUNT=1
  • 可以使用unset命令删除变量的赋值
    Shel相关编程(四)_第1张图片
位置变量
  • 类似C语言中的参数
    Shel相关编程(四)_第2张图片
    可以用${11}来表示第11个命令行参数
  • 举例
    Shel相关编程(四)_第3张图片
常用的Shell环境变量

export命令:

查看所有的变量。


Shell–功能语句

说明性语句
  • Shell中用"#"来说明注释
#!/bin/sh
#
#
# 用来告诉os用哪种类型的Shell来解释执行该程序。
功能性语句
  • read命令
    从标准输入中读入一行,并赋值给后面的变量,语法为:
read var
#把读入的数据全部赋值给var

read var1 var2 var3
#把读入的第一个单词赋值给var1,第二个给var2,把其余所有的词赋给最后一个变量也就是var3

Shel相关编程(四)_第4张图片

  • expr命令
    用于简单的整数运算,包括加减乘除取余等操作。
    Shel相关编程(四)_第5张图片

  • test命令
    测试语句:可测试字符串、整数、文件属性

字符串测试:

  • s1=s2 测试两个字符串内容是否完全一样
  • s1!=s2 测试两个字符串内容是否有差异
  • -z s1 测试s1字符串长度是否为0
  • -n s1 测试s1字符串长度是否不为0

0为真,1为假(与C语言相反)
Shel相关编程(四)_第6张图片
Shel相关编程(四)_第7张图片


Shell–分支语句

两路分支语句
  • 格式
if 表达式
	then 命令表 
fi
  • 解释:
    如果表达式为真,则执行命令表中的命令;否则退出if语句,执行fi后面的语句。
  • 举例:
    设计一个文件测试程序,判断文件类型并打印出来。
    Shel相关编程(四)_第8张图片
多路分支语句
  • 格式
if 表达式
	then 命令表
elif 表达式
	then 命令表
elif 表达式
	then 命令表
else 命令表
	命令表
if

Shel相关编程(四)_第9张图片

另一种多路分支语句

case  字符串变量 in
	 模式1)
	 	命令表1
		;;
	模式2|模式3)
	 	命令表2
		;;
	......
	......
	模式*)
	 	命令表n
		;;	
esac

Shell–循环语句

for语句
  • 格式
for 变量名 in 单词表
	do 
		命令表
	done
  • 举例
    Shel相关编程(四)_第10张图片
    也可以写成类C式,for和括号之间有空格!!
    Shel相关编程(四)_第11张图片
while语句
while 表达式
do
	命令表
done
  • 举例:
    注意while后用的是中括号
    Shel相关编程(四)_第12张图片
break和continue语句
break n 			#跳出n层
continue			#马上转到最近一层循环语句的下一轮循环上
continue n			#转到最近n层循环语句的下一轮循环上

Shell–函数

函数的调用
  • 格式
#方式1 
value_name=`function_name [arg1 arg2 ...]

#方式2
function_name[arg1 arg2 ...]
echo $?                         #得到返回值
  • 举例:设计一个查找已经登录的指定用户函数
    Shel相关编程(四)_第13张图片
函数的作用域
  • 全局作用域
    默认就是全局变量,在函数内部的变量也是全局的
  • 局部作用域
    用 local声明变量为局部变量
  • 举例
    Shel相关编程(四)_第14张图片

你可能感兴趣的:(Linux)