追风赶月莫停留,平芜尽处是春山。这篇文章主要讲述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
文章图片
管道操作
文章图片
文章图片
文章图片
df -hT | grep "/$" | awk print $6
提取/分区中,上例中 awk 命令的作用是以冒号“:”作为分隔,输出第 6个区域的字符串
文章图片
提取/分区中,上例中 awk 命令的作用是以冒号“:”作为分隔,输出第1和和第 6个区域的字符串
文章图片
提取/dev分区中,上例中 awk 命令的作用是以冒号“:”作为分隔,输出第一个和第 6个区域的字符串
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编程】
推荐阅读
- 修改jupyter notebook的默认浏览器
- You can remove cached packages by executing ‘yum clean packages‘. Error: GPG check FAILED
- LDAP/SASL/GSSAPI/Kerberos编程API--krb5应用服务(UDP)
- E: Unable to correct problems, you have held broken packages.
- android studio打包weexplus项目常见错误
- 如何使用SAP云平台的Notification服务给Android应用推送通知消息
- 使用SAP云平台Android SDK创建Mobile应用
- Android中Handler与Message的简易使用
- 手机控车OBD-移动管家手机控车方案基于Android手机智能控制汽车系统的研究与实现;