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"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失了志的咸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值