Linux-实操篇8-shell脚本编写

一、shell是什么

在这里插入图片描述

二、shell脚本如何执行

2.1 新建一个shell脚本

## 第一步新建一个shell脚本
vim aaa.sh
## 内容如下,#!/bin/bash 表示shell脚本的执行协议,必须要写
#!/bin/bash
echo "hello word!!!"

2.2 执行方式

方式一:先给脚本权限,在输入脚本的绝对路径或相对路径

chmod 777 aaa.sh
./aaa.sh

方式二:★直接用sh + 脚本,不需要权限

sh aaa.sh

三、句法

3.1 shell变量

定义变量的规则:
在这里插入图片描述
将命令的返回值赋给变量(重点)
在这里插入图片描述
多行注释
在这里插入图片描述

3.1.1 系统变量
#!/bin/bash
echo "HOME=$HOME"
echo "PWD=$PWD"
echo "SHELL=$SHELL"
echo "USER=$USER"
3.1.2 自定义变量
echo 自定义变量
AAA=100
BBB=张三
# 撤销变量
unset BBB
echo AAA=$AAA
echo BBB=$BBB
3.1.3 静态变量

静态变量不能 unset

echo 静态变量
readonly CCC=200
echo 静态变量CCC=$CCC
3.1.4 配置环境变量
export 变量名=变量值        (功能描述:将shell变量输出为环境变量)
source 配置文件             (功能描述:让修改后的配置信息立即生效)
echo $变量                 (功能描述:查询环境变量的值
vim /opt/profile
## 在其他添加
export TOMCAT_9001=/opt/tomcat_9001
## 使得环境变量生效
source /etc/profile
## 验证
echo $TOMCAT_9001
3.1.5 位置参数变量

注意在这里插入图片描述
注意:再center7.x以后 $* 和 $@ 是一样的,都是分开的多个参数
aaa.sh

echo ------------------
echo 位置参数变量
echo "各个参数:$0,$1,$2"
echo "参数:$*"
echo "参数:$@"
echo "参数个数:$#"

执行

sh aaa.sh 100 200 300

在这里插入图片描述

3.1.6 预定义变量

shell设计者预算定义好的参数
在这里插入图片描述

echo 预定义参数
echo "当前的进程号:$$"
# 后台运行aaa.sh
./bbb.sh $
echo "后台运行的最后的进程号:$!"
echo "上一个命令的返回值:$?"

3.2 运算符

在这里插入图片描述

echo 运算符
## 注意这里是2个小括号才可以
echo "1+1=$((1+1))" 
## 推荐
echo "1+1=$[1+1]

3.3 条件判断语句

在这里插入图片描述
在这里插入图片描述

echo 条件判断
if [ "ok" = "ok" ]
then
        echo ok
fi
if [ 1 -lt 1 ]
then
        echo 小于
fi
if [ -r aaa.sh ]
then
        echo 可以读
fi
if [ -f aaa.sh ]
then
        echo 常规文件
fi

3.4 流程控制 if case for while

3.4.1 if 条件判断

在这里插入图片描述


        echo 小于
fi
if [ -r aaa.sh ]
then
        echo 可以读
fi
if [ -f aaa.sh ]
then
        echo 常规文件
fi
3.4.2 case 选择

在这里插入图片描述

read -p "请输入星期:" DAY
echo case 语句
case $DAY in
"1")
        echo "星期一"
;;
"2")
        echo "星期二"
;;
"3")
        echo "星期三"
;;
*)
        echo "星期天"
;;
esac
3.4.3 for循环

在这里插入图片描述
在这里插入图片描述

echo "for的两种用法:"
for i in $@
do
        echo "then num is $i"
done
SUM=0
for((i=1;i<100;i++))
do
        SUM=$[$SUM+$i]
done
echo "SUM=$SUM"
3.4.4 while循环

在这里插入图片描述

echo while 循环
i=1
WSUM=0
while [ $i -le $1 ]
do
WSUM=$[$WSUM+$i]
i=$[$i+1]
done
echo "WSUM=$WSUM"

3.5 read读取控制台输入

在这里插入图片描述
在这里插入图片描述

echo 从前台输入
## 10秒内输入
read -t 10 -p "10秒内输入:" DAYTIME
echo $DAYTIME

3.6 ★函数

在这里插入图片描述

3.6.1 系统函数
basename 函数 获取文件名

在这里插入图片描述

dirname 函数 获取文件路径

在这里插入图片描述

echo 系统函数
echo "dirname"  $(dirname /usr/myshell/aaa.sh)
echo "basename" $(basename /usr/myshell/aaa.sh)
echo "basename" $(basename /usr/myshell/aaa.sh .sh)

在这里插入图片描述

3.6.2 ★自定义函数

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值