shell脚本变量
脚本案例
vim first.sh
#!/bin/bash #注明使用环境
cd /boot
echo "当前目录"
pwd
echo"中以vml开头的文件包括"
ls -lh vml
bash firsh.sh
当前目录
/boot
中以vml开头的文件包括
ls: cannot access vml: No such file or directory #我没有
执行脚本的三个方法
- 需要执行权限:./root/first.sh
- 不需要执行权限:进入目录sh first.sh bash firsh.sh
- 不需要执行权限:进入目录source first / first.sh
linux默认的是/bin/bash
重定向
交互式硬件设备文件:standard(input,output,error)
- 标准输入:从该设备接受用户输入的数据 0(默认编号)
- 标准输出:通过该设备向用户输出数据 1(默认编号)
- 错误输出:通过该设备报告执行出错信息 2(默认编号)
操作
- 标准输入 = /dev/stdin = 代号0 = <符号(注意,没有包含<<符号)。
- 标准输出 = /dev/stdout = 代号1 = >或>>符号。
- 标准错误输出 = /dev/stderr = 代号2 = 使用2>或2>>符号。
:追加,>:覆盖5
管道符
管道符号意如其名,类似管道一样将管道入口的数据通过管道传递给管道出口。
管道是为了解决进程间通信问题而存在,它可以让两个进程之间的数据进行传递,将一个进程的输出数据传递给另一个进程作为其输入数据。管道左边是数据给予方,管道右边是数据接收方。
awk命令
- awk -F “分隔符” ‘/过滤文本/{print $1}’处理文件 #过滤文本里以分隔符为分割打印出第一行
[root@server01 ~]# df -Th | grep "/$" |awk '{print $6}' #打印出df里以/结尾的行的第6列
62%
[root@server01 ~]# df -Th | grep "/$" |awk '{print $6}' #打印出df里以/结尾的行的第6列
62
shell变量
自定义变量
就是用户自己定义的变量,只有用户自己的shell环境中生效,又称为本地变量
格式: 变量名=变量值
name=zhengsan
product=2.0
echo $name
zhengsan
echo $product3.0
2.03
echo $name$product
zhengsan2.0
特殊符号
echo "$name$product" #可以引入变量
zhengsan2.0
echo '$name $product' #不会引入变量
$name $product
#反撇号:引号内的执行结果作为变量名的变量值(类似于|)
read命令
-p:设置提示信息
read -p "请输入你的名字年龄:" name age
请输入你的名字年龄:zhangsan 20
echo $naem$age
zhangsan20
设置变量生效范围
export命令:可以将局部的变量发布到全局
echo $product #查看当前shell变量
2.0
export product #将product变量发布全局
bash #切换到新的子shell环境
echo $product
2.0
exit
注意:发布全局只能向子shell发布,不能向上父shell发布