Linux Shell脚本

目录

1.概述

2.编写Shell及运行

2.编写Shell及运行

3.定义变量

4.字符串操作

5.反引号

6.动态传参

7.if语句

 8.if-else语句

 9.if-else-if语句

总结

1.概述

在1个文件中写Linux代码, 然后通过Shell解析器来解析的过程.
流程: 在后缀名为.sh的文件中写Linux命令 => 执行该Shell脚本

           => Shell解析器会解析该脚本 => 执行并查看结果

2.编写Shell及运行

# 如何编写Shell脚本? 
1. 在后缀名为 .sh 的文件中进行编写.
2. 第一行代码为: 指定用什么Shell解析器来解析该脚本, 一般写 #/bin/bash
    # 如何运行Shell脚本呢? 
1. sh 脚本名.sh        # 官方推荐,  不需要对Linux脚本有执行权.
2. source 脚本名.sh    # 野路子写法, 不需要对Linux脚本有执行权.
3. 相对路径.           # 必须对Linux脚本有执行权.
4. 绝对路径.           # 必须对Linux脚本有执行权.

2.编写Shell及运行

# 如何编写Shell脚本? 
1. 在后缀名为 .sh 的文件中进行编写.
2. 第一行代码为: 指定用什么Shell解析器来解析该脚本, 一般写 #/bin/bash
    # 如何运行Shell脚本呢? 
1. sh 脚本名.sh        # 官方推荐,  不需要对Linux脚本有执行权.
2. source 脚本名.sh    # 野路子写法, 不需要对Linux脚本有执行权.
3. 相对路径.           # 必须对Linux脚本有执行权.
4. 绝对路径.           # 必须对Linux脚本有执行权.

3.定义变量

定义变量
	echo ${name}
zhangsan
		{}可以省略
	删除变量, 即使不删除, 重启服务器, 该变量也会被自动删除.
		unset name
	如果字符串值有空格, 必须用引号包裹.
		hobby='eat shuij'	
	使用变量、执行运算、执行Linux命令的区别
		使用变量 $变量名
		执行运算 $[]
		执行Linux命令  $()

4.字符串操作

字符串操作
	以后定义字符串, 推荐使用双引号
	echo my name is "$name"
    my name is zhangsan
		双引号包裹的$有特殊意义, 单引号包裹则原样输出.

5.反引号

反引号
	echo `date`
2023年 05月 12日 星期五 11:28:15 CST
		如果要执行Linux命令, 则: 用反引号包裹
	如果要执行Linux命令, 则: 用$()包裹 反引号与$()作用相同
		[root@node1 ~]# dt=`date`
        [root@node1 ~]# echo $dt
        2023年 05月 12日 星期五 11:29:00 CST
        [root@node1 ~]# dt2=$(date)
        [root@node1 ~]# echo $dt2
        2023年 05月 12日 星期五 11:29:16 CST

6.动态传参

动态传参
#!/bin/bash     # 定义一些变量, 分别记录姓名, 年龄, 性别
name='刘亦菲'
age=33
gender='女'

# 输出上述的内容     
echo "你好, 我叫$name, 今年$age岁了, 我的性别是$gender"
	# 如下是和动态传参相关的内容
echo "当前的文件名是: $0"
echo "接收到的参数总个数为: $#"
echo "接收到的所有参数为: $*"
echo "第1个参数值为: $1"
echo "第2个参数值为: $2"
echo "第3个参数值为: $3"

7.if语句

if语句入门
	相关
		    数字:
        运算符			说明
        -eq			检测两个数是否相等,相等返回 true。
        -ne			检测两个数是否不相等,不相等返回 true。
        -gt			检测左边的数是否大于右边的,如果是,则返回 true。
        -lt			检测左边的数是否小于右边的,如果是,则返回 true。
        -ge			检测左边的数是否大于等于右边的,如果是,则返回 true。
        -le			检测左边的数是否小于等于右边的,如果是,则返回 true。
		字符串:
        判断符			说明
        -n 			STRING	字符串长度不为零
        -z 			STRING	字符串长度为0
        = 			判断两个字符串是否一样
        != 			判断两个字符串是否不一样
		文件
        判断符			说明
        -f			存在且是普通文件
        -d			存在且是目录
        -h			存在且是符号链接 
        -e			文件存在 
        –r			文件存在并且可读
        –w			文件存在并且可写
        –x			文件存在并且可执行
	格式
		if condition	//条件, 条件要用 [] 包裹. 
        then
            command1 	//符合条件后, 就会执行这里的内容
            command2
            ...
            commandN 
        fi

注意: 不允许将以上格式 写成一行.
案例
1: 判断当前系统是否有多个ssh进程,如果有则打印true
#!/bin/bash
if [ $(ps -ef | grep -c "ssh") -gt 1 ]		//这里的-c就是count的意思, 即: 统计个数的.					
then 
	echo "true" 
fi

2: 判断/media/cdrom目录是否存在,若不存在就去创建这个目录
#!/bin/bash 
DIR="/media/cdrom" 
if [ ! -d $DIR ] 
then 
	mkdir -p $DIR 
fi

 8.if-else语句

if-else语句
	if else 语法格式:
    if condition	//条件, 用[]包裹
    then
        command1	//符合条件后, 执行的内容
        command2
        ...
        commandN
    else
    	command		//不符合条件后, 执行的内容. 
    fi
		# 案例3: 根据年龄判断是否成年
#!/bin/bash

提示用户录入他/她的年龄, 并接收.
read -p "请录入您的年龄: " age
if [ $age -ge 18 ]
then
	echo '恭喜您, 成年了, 可以上网了!'
else
	echo '小屁孩儿, 滚回去学习!'
fi

 9.if-else-if语句

if-else if语句
	if else-if else 语法格式:
    if condition1		# 条件1
    then
    	command1		# 满足条件1后, 执行的内容
    elif condition2 	# 条件2
    then 
    	command2		# 满足条件2后, 执行的内容
    else
    	commandN		# 所有条件都不满足, 则执行这里.
    fi
		# 需求4: 判断两个变量是否相等
#!/bin/bash

read -p "请录入第12个整数: " a
read -p "请录入第2个整数: " b

if test $a -eq $b
then
	echo "$a 和 $b 相等"
elif test $a -gt $b
then
	echo "$a 比 $b 大"
else
	echo "$a 比 $b 小"

总结

以上是关于Linux脚本的知识模块,希望对您有所帮助!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值