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发布

posted @ 2021-10-20 21:04  whml  阅读(67)  评论(0编辑  收藏  举报