声明!
学习视频来自B站up主 泷羽sec有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec
一、基本概念以及使用
Shell脚本:由一系列 Shell 命令、函数、变量定义和控制流语句组合而成,用于自动化执行系统管理任务、文件处理、文本处理以及各种命令行工具的组合操作等。
- 创建shell程序文件
touch shell.sh
vim shell.sh
这里的后缀.sh是可选项,可以不写。
- 脚本的运行分为三种。
#! /bin/dash
#! /bin/sh
#! /bin/bash
这三种方式最后都是调用dash这个解释器。
-
执行脚本
-
直接执行
-
添加可执行权限:chmod u+x test.sh
脚本创建出来之后是一个普通文件 --> 没有执行权限
-
运行脚本:./test.sh
-
-
- 解释器执行
- sh/dash/bash test.sh(三个解释器,任选其一即可)
- 示例:sh test.sh;dash test.sh;bash test.sh
- 利用source命令执行
- 示例:source test.sh
- 区别:会对部分命令,颜色加深标注。
二、基本变量
变量声明
例如,定义一个name变量,name=“无情哈拉少”
name="无情哈拉少"
echo $name
或者这样:age=18
age=18
echo $age
复杂一点的使用:
echo my name is $name,and my age is $age years old
一般来说加双引号和不加双引号的效果是一样的,如果是单引号会直接输出。
变量拼接
echo my name is $name,and my age is $ageyears old
这里输出可以发现并没有输出年龄,因为$ageyears没有这个变量,如果不想要空格,可以使用拼接方法。如
echo my name is $name,and my age is ”$age“years old
echo my name is $name,and my age is {$age}years old
变量的命名
- shell脚本变量的命名类似于编程语言,不能以数字开头,且不能有空格,但是运行下划线。
- shell脚本里的(=)左右不能有空格(如果有空格,Shell 会将其解释为命令和参数)。
二、数字运算
在shell编程中,expr
用来输出计算的结果
加减法的运算输出方式:
方式一:
expr 10 + 5 #每个中间必须要有空格
expr 10 - 5
乘除法等运算方式:
expr 10 \* 5 #乘法这里需要转义
expr 10 / 5 #这里是触发运算
expr 10 % 5 #这里是取余
混合运算:
expr 10 + 5 \*4 #输出:30
#这里的运算顺序也是先乘除后加减
expr \( 5+10 \) \* 4 #输出:60
#这里不能直接使用括号,也是需要转义才能使用
运算与变量结合:
# 使用 expr 命令计算并赋值
name $(expr 5 + 6)
echo $name # 输出:11
# 使用算术扩展赋值
name=$((5 + 6))
echo $name # 输出: 11
- 要执行计算并赋值结果,应去掉单引号,使用命令替换
$( ... )
或算术扩展$(( ... ))
。
方式二:
在bash等shell中,可以使用$(( ))来进行算术扩展。
- 基本运算
echo $(( 1+2 )) #加法
echo $(( 2-1 )) #减法
echo $(( 1*2 )) #乘法
echo $(( 2/1 )) #除法
echo $(( 2%1 )) #取余
- 变量赋值
num=$((5 + 10))
echo $num
三、其他常用操作
查看变量和删除变量
查看所有变量:
set
查看指定变量:
set | grep name
删除变量:
unset name
永久变量的设置
永久变量
刚才export只是设置了临时变量,那我们将它写入到配置文件当中作才能永久生效。
/usr/bin/vi .bashrc
export PATH=/root:PATH
使变量生效:
source usr/bin/ .bashrc
或者重启也可以。