shell编程

Posted XIKE-S

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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




管道操作






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编程的主要内容,如果未能解决你的问题,请参考以下文章

Linux Shell编程之算术运算

PHP精度问题

28.shell脚本计算能被3整除的余数和

php里面bcadd是什么意思

php 处理高精度计算函数

shell脚本,测试