shell编程

追风赶月莫停留,平芜尽处是春山。这篇文章主要讲述shell编程相关的知识,希望能为你提供帮助。

shell编程

文章图片







编写第一个shell脚本
shell编程

文章图片



shell编程

文章图片





shell编程

文章图片





chmod +x first.sh    设置权限
sh first.sh                              启动权限






重定向操作    标准输入、标准输出、标准错误
[root@localhost ~]# uname -p > kernel.txt
[root@localhost ~]# cat kernel.txt
x86_64
[root@localhost ~]#


[root@localhost ~]# vim pass.txt                  //添加初始密码串内容"123456"
[root@localhost
~]# cat pass.txt
123456
[root@localhost
~]#


前提:关闭防火墙和安全linux
shell编程

文章图片







管道操作
shell编程

文章图片





shell编程

文章图片





shell编程

文章图片



df -hT | grep "/$" | awk print $6   
提取/分区中,上例中 awk 命令的作用是以冒号“:”作为分隔,输出第 6个区域的字符串


shell编程

文章图片

提取/分区中,上例中 awk 命令的作用是以冒号“:”作为分隔,输出第1和和第 6个区域的字符串


shell编程

文章图片

提取/dev分区中,上例中 awk 命令的作用是以冒号“:”作为分隔,输出第一个和第 6个区域的字符串






Shell 变量的作用、类型
shell编程

文章图片





[root@localhost ~]# echo $product2.5          变量product2.5 并未定义
.5


[root@localhost
~]# echo $product2.5
python2.5


变量赋值的特殊操作
双引号(”)
[root@localhost ~]# 
PYTHON=Python 2.7.13    错误的赋值
bash:
2.7.13: 未找到命令...


[root@localhost ~]# 
PYTHON="Python 2.7.13"  正确的赋值
[root@localhost
~]# echo $PYTHON
Python
2.7.13


[root@localhost ~]# SQLServer="SQLServer $Version"  以变量的值进行赋值
[root@localhost
~]# echo $SQLServer
SQLServer
2.7.13






单引号(‘)
[root@localhost ~]# SQLServer=SQLServer $Version      //$符号不能再引用变量
[root@localhost ~]# echo $SQLServer                                                         //原样输出字符串
SQLServer
$Version




反撇号(`)
[root@localhost
~]#  ls -lh `which useradd`
-rwxr-x---.
1 root root 116K 10月 31 2018 /usr/sbin/useradd




[root@localhost
~]# read -p "请输入你的名字:" ss
请输入你的名字:ss




设置变量的作用范围
[root@localhost
~]# echo "$Product $Version" //查看当前定义的变量值
Python 2.7.13
[root@localhost
~]# bash //进入子 Shell 环境
[root@localhost
~]# echo "$Product $Version" //无法调用父 Shell 环境中的变量
[root@localhost
~]# exit //返回原有的 Shell 环境


[root@localhost
~]# echo "$Product $Version" //查看当前定义的变量值
Python
2.7.13
[root@localhost
~]# export Product Version
  //将 Product、Version 设为全局变量
[root@localhost
~]# bash //进入子 Shell 环境
[root@localhost
~]# echo "$Product $Version"
Python
2.7.13 //可以调用父 Shell 的全局变量
[root@localhost
~]# exit //返回原有的 Shell 环境






使用 export
导出全局变量的同时,也可以为变量进行赋值,这样在新定义全局变量时
就不需要提前进行赋值了。例如,执行以下操作可以直接新建一个名为
FQDN 的全局变量。
[root@localhost
~]# export FQDN="www.jb-aptech.com.cn"
[root@localhost
~]# echo $FQDN
??www.jb-aptech.com.cn??




数值变量的运算
其中,变量 1、变量
2??对应为需要计算的数值变量(需要以“$”符号调用),常用
的几种运算符如下所述。
? +:加法运算。
? -:减法运算。
?
\\*:乘法运算,注意不能仅使用“*”符号,否则将被当成文件通配符。
? /:除法运算。
?
%:求模运算,又称为取余运算,用来计算数值相除后的余数。
以下操作设置了
X(值为 35)、Y(值为 16)两个变量,并依次演示了变量 X、Y 的加、
减、乘、除、取模运算结果


[root@localhost
~]# X=35
[root@localhost
~]# Y=16
[root@localhost
~]# expr $X + $Y
51
[root@localhost
~]# expr $X - $Y
19
[root@localhost
~]# expr $X \\* $Y
560
[root@localhost
~]# expr $X / $Y
2
[root@localhost
~]# expr $X % $Y
3
若要将运算结果赋值给其他变量,可以结合命令替换操作(使用反撇号)。例如,计算
变量 Y 的 3
次方,并将结果赋值给变量 Ycube。
[root@localhost
~]# Ycube=`expr $Y \\* $Y \\* $Y`
[root@localhost
~]# echo $Ycube
4096


【shell编程】


    推荐阅读