linux学习笔记(二)Shell脚本编程基础入门

Shell脚本编程基础

在这里插入图片描述

第一步:建立Shell文件

touch pp.sh

第二步: 赋予Shell文件执行权限

chmod 740 pp.sh

**第三步:**执行shell文件

bash pp.sh

一、变量

在这里插入图片描述

在shell脚本中通过``符号进行命令置换,将其输出赋值给变量。

在这里插入图片描述

1、用户自定义变量

COUNT=1#用户自定义变量
echo $COUNT
DATE=`date`#命令置换
echo $DATE

2、位置变量

位置变量也是预定义变量,但是跟位置有关系

在这里插入图片描述

COUNT=1#用户自定义变量
echo $COUNT
DATE=`date`#命令置换
echo $DATE
echo "0......$0"
echo "1......$1"
echo "10......${10}"

3、环境变量

在这里插入图片描述

COUNT=1#用户自定义变量
echo $COUNT
DATE=`date`#命令置换
echo $DATE
echo "0......$0"
echo "1......$1"
echo "10......${10}"
echo $home

二、shell语句

1、说明性语句(注释)

#号开始

2、常用功能性语句

  • 任意的shell命令
  • 用户程序
  • 其他shell程序

read语句

read var#从标准输入读入一行,赋值给var
read var1 var2 var3#从读入行的第一个单词赋值给var1,第二个给var2,其他剩余的给var3
#如果read语句执行时无输入,程序等待输入

expr语句

$expr 12+5/*3#用于进行简单的加减乘除整数运算

#example 1
read var1 var2
num=`expr $val1+$val2`
echo $sum

test语句

test语句可测试三种对象:

  • 字符串
  • 整数
  • 文件属性
#字符串测试
test "$answer"="yes" #变量answer的值是否为字符串yes
echo $?#0表示成立,1表示不成立

在这里插入图片描述

#整数测试
test $num -eq 10#变量num的值是否为整数18

在这里插入图片描述

#文件测试
test -d tmp#测试文件名是否为一个目录

3、结构性语句

条件测试语句

在这里插入图片描述

#条件语句
#判断是否为文件
if test -f $1
then  
	echo "$1i is a file"
else
	echo "$1i is not a file"
fi




 #条件语句
#elif
read var
if test $val -eq 0#if [ $val -eq 0 ]
then
	echo "val=0"
elif test $val -gt 0
then
	echo "val>0"
else
	echo "val<0"
fi

多路分支语句

在这里插入图片描述

#多路分支语句
read val
val=`expr $val / 10`
case $val in
	8|9|10)
		echo "A"
		;;
	6|7)
		echo "B"
		;;
	*)
		echo "C"
		;;
esac
	

循环语句

在这里插入图片描述

#循环语句for
#用法一
for val in 1 2 3 4 5
do
	echo $val 
done

#用法二
for ((val=1; val <=5; val=$val+1))
do
	echo $val 
done

#用法三
for file in `ls`;

在这里插入图片描述

#循环语句while
#用法一
NUM=0
while [ $NUM -lt 10 ]
do
	e cho "********"
	NUM=`expr $NUM+1`
done

#用法二
while (($NUM < 10))
do
	e cho "********"
	NUM=`expr $NUM+1`
done

三、shell函数

1、函数的定义

fun()
{
    
    
	echo "hello world"
}

fun#函数调用

2、函数传参

fun()
{
    
    
	A=$1
	B=$2
	C=$3
	echo "hello world"
	NUM=`expr $A+$B+$C`
	echo "NUM=$NUM"
} 
fun 1 2 3#函数传参数

3、函数返回值

fun()
{
    
    
	A=$1
	B=$2
	C=$3
	echo "hello world"
	NUM=`expr $A+$B+$C`
	return $NUM
} 
fun 1 2 3#函数传参数
echo "\$?=$?"

4、函数作用域

#shell脚本函数的变量作用域默认为全局,程序文件里
fun()
{
    
    
	A=$1
	B=$2
	C=$3
	echo "hello world"
	NUM=`expr $A+$B+$C`
	return $NUM
} 
fun 1 2 3#函数传参数
echo "\$?=$?"
echo "A=$A"
echo "B=$B"
echo "C=$C"
#通过下面方式实现作用域规定到局部
fun()
{
    
    
	local A=$1
	B=$2
	C=$3
	echo "hello world"
	NUM=`expr $A+$B+$C`
	return $NUM
} 
fun 1 2 3#函数传参数
echo "\$?=$?"
echo "A=$A"
echo "B=$B"
echo "C=$C"

猜你喜欢

转载自blog.csdn.net/qq_40959462/article/details/129210235