执行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
 
                    
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号