执行shell脚本的多种方式:

1.[root@localhost ~]# bash file1    //第一种方式
2.[root@localhost ~]# sh file1    //第二种方式
3.[root@localhost ~]# . file1    //第三种方式
4.[root@localhost ~]# source file1    //第四种方式

其中,1、2方式是子shell执行,3、4方式是本shell执行

定义变量:

[root@localhost ~]# name="majiajun 123"  //注意!等号两边不能有空格。且如果变量的值有空格,需要用引号包含

使用变量:

[root@localhost ~]# echo $name

 重复定义变量:

[root@localhost ~]# name=majiajun
[root@localhost ~]# name=123
[root@localhost ~]# echo $name        //重复定义变量会导致变量的值被覆盖
输出结果:123

 变量追加内容:

[root@localhost ~]# name=123
[root@localhost ~]# name="$name"456    //一定要加引号,才能看做一个整体。这样可以实现追加效果。
[root@localhost ~]# echo $name
123456

 也可以使用另一种方式追加内容:

[root@localhost ~]# name=123
[root@localhost ~]# name=${name}456    //同理,使用大括号内变量名的方式表示一个整体
[root@localhost ~]# echo $name
123456

变量的查看:

[root@localhost ~]# set | gerp name  //set命令可以查看系统所有变量
name=123456

变量的删除:

[root@localhost ~]# unset name    //删除变量名为name的变量,不需要加$

变量的使用案例:(重点不是如何使用运算符判断是否在线,重点是明白变量的使用技巧)

read -p "您要查询的ip是?" ip    //让用户输入要查询的IP地址,放入ip变量内。read -p,先打印一行提示信息,然后再让用户输入内容。
ping -c 1 ${ip} &> /dev/null && echo ${ip} up || echo ${ip} down    //判断用户是否在线,并输出变量内的ip地址+结果

 变量中引号的使用说明:

双引号(变量值中的空格失去命令分隔含义)

[root@localhost ~]# name=majiajun
[root@localhost ~]# name="$name is good"    //双引号的作用是,把变量值中的空格,转义为一个普通字符。这种方式称为弱引用。
[root@localhost ~]# echo $name
majiajun is good

单引号(转义一切内容)

[root@localhost ~]# name=majiajun
[root@localhost ~]# name='$majiajun is good'    //无论单引号中的内容是什么,都会作为变量值保存,也就是转义一切符号。这种形式称为单引用。
[root@localhost ~]# echo $name    //观察输出结果
$majiajun is good

反引号(``优先执行)

[root@localhost ~]# info=现在的时间是:`date`    //优先执行反引号里面的命令,得出结果,再进行变量赋值
[root@localhost ~]# echo $info
现在的时间是:Sun Aug 29 06:54:53 EDT 2021

 数学运算的四种方式:

整数运算

[root@localhost ~]# expr 1 + 3    //第一种方式,注意!数字与运算符号之间需要有空格!
4
[root@localhost ~]# num=$((1+3));echo $num    //第二种方式,此处分号的作用是执行完前面的命令再执行后面的命令
4
[root@localhost ~]# sum=$[1+3] ;echo $sum    //第三种方式
4
[root@localhost ~]# let sum=1+3 ;echo $sum     //第四种方式
4

 以上的四种方式中运算都可以替换成变量名,如:

[root@localhost ~]# num1=5
[root@localhost ~]# num2=6
[root@localhost ~]# expr $num1 + $num2  //将此处替换为变量名
11

 小数运算

[root@localhost ~]# echo "scale=3;10/3" | bc    //bc是会话式程序,使用管道符可以免交互。scale是保留小数点后的位数。
3.333

 

posted on 2021-08-29 15:55  majiajun  阅读(98)  评论(0)    收藏  举报