文章目录
一、变量运算
1.1、整数变量的运算
固定格式: expr 变量1 运算符 变量2 [运算符 变量3]…
常用运算符
+:前后需要空格
-:前后需要空格
*:需要添加转义符\
/:取除的整数
%:取余数
**:次方
1.2 与自定义变量结合使用
1.3使用调用echo
1.31次方 $[]
1.32 $(())
1.33 let:无法直接输出答案,需要echo运算出结果
a++=a+1:是使用的a后,再对a进行加1
a–=a-1
++a=1+a:先把a加1,然后再使用a
1.34 bc 系统自带的计算器,处理整数
通常用于处理带小数的运算
1.4 环境变量
- 概念
环境变量指的是处于运行需要而有linux系统提前创建的一类变量,用户不变的情况下,一直延用环境变量,使用env命令可以查看当前工作环境下的所有环境变量。
echo 环境变量 #查看单个环境变量
- 常见的环境变量
$USER
$UID
$PWD
$HOSTNAME
1.5 自定义变量变成环境变量
临时性: export 变量名;在不改变登录用户的情况下一直存在
bb=20
export bb #直接在shell环境输入
永久:若需要改变用户时,变量仍存在,需要写入配置文件
vim /etc/profile #环境变量配置文件
export aa=10 #
source /etc/profile #重新读入配置文件
echo $aa
1.6echo $SHLVL #查看当前shell的层级*
1.7实操
实验要求:可以执行test.sh
给脚本文件赋予可执行权限,仍无法执行
chmod +x user.sh
ls
因为uesr.sh不在$PASH的目录里面,所以系统无法直接用,需要跟上绝对路径使用该脚本
pwd
echo $PATH
- 方法一:写入环境变量的配置文件
vim /etc/profile
PATH=$PATH:/root #增加一行变量
- 方法二:临时加入环境变量
1.8只读变量-readonly
readonly 脚本 #只读变量
赋值只读无法更改变量值,取消只读变量,只能退出exit,重新连接;或者更改shell变量.
1.9位置变量和预定义变量
- 传递参数给到脚本内
$0:当前执行的脚本
$1:脚本的第一个参数
$2:脚本的第二个参数
实例
vim zaq.sh
实列
1.91 预定义变量
预定义变量是由Bash程序预先定义好的一类特殊变量,用户只能使用预定义变量,而不能创建新的预定义变量,也不能直接为预定义变量赋值。
预定义变量使用"$”符号和另一个符号组合表示
$#:表示命令行中位置参数的个数
$*: 表示所有位置参数的内容,这些内容当做一个整体
$@:表示所有列出位置参数,但是是以单个的形式列出
$?:表示前一条命令执行后的返回状态,返回值为0表示执行正确,返回任何非0值均表示执行出现异常
$0:表示当前执行的脚本或程序的名称
$$: 表示当前进程的进程号
$!: 上一个后台进程的进程号
$?:表示前一条命令执行后的返回状态,返回值为0表示执行正确,返回任何非0值均表示执行出现异常
1.92 查询变量
unset 变量名 #取消/清除/释放变量
set #查看系统所有变量;包含自定义变量和环境变量
set | grep ZZZ:查询变量ZZZ
整数型变量
二、重定向
2.1交互式硬件设备
标准输入:从键盘输入,设定键盘为输入设备
标准输出:通过显示器输出到屏幕
标准错误:当我执行一个命令时,显示器会把错误信息输出到屏幕
2.2 重定向操作
重定向输出:>=1>;>>=1>>
- /dev/null:系统自带的黑洞系统,相当于垃圾桶;null:黑洞;/dev:设备
- <:输入:把屏幕前的结果输入到指定文件内
vim pass.txt