shell学习(一) 变量+运算

https://blog.csdn.net/hanchao5272/article/details/86429645

一、执行方式

执行shell脚本的几种方法:

1、第一种sh、bash法:sh xxx.sh;

2、第二种路径法:直接输入该脚本的绝对路径或相对路径。 前提是要给脚本赋权 chmod 755 xxx.sh

      /home/admin/xxx.sh          或者进入admin目录下   ./xxx.sh

3、第三种source法:  source  xxx.sh; (相当于相对路径执行 ./xxx.sh)

 

一般写shell脚本,在第一行会输入  #!/usr/bin/bash   这个是解释用什么解释器来执行该脚本的意思,解释器的启动位置。

一般解释器都放在/usr/bin目录下,上面可以直接写 #!/usr/bin。   也有一些机器可能是要写#!/bin/bash,看情况了。

 

二、注释

单行注释  行首加 # 符号,就仅注释该行。  如 #123

多行注释   比较少用。  可以进入可视化模式,一次性在行首添加 # 符号实现注释

:<< 自定义标记

        注释内容1

        注释内容2

自定义标记

说明,自定义标记,可以随意,如abc。前后要一样。

三、变量

1、基本说明

变量是数据的载体,存放数据;调用的时候,如调用变量a,可以写${a} 或 $a 或 "${a}"。shell是弱类型语言,有多种格式。

字符串:   a="abc"     --要用引号,单引号或双引号均可

数值:       b=10

变量修改:重新赋值即可修改,如b=12   ,输出时就不再是10了。

变量清除:  unset a

双引号和单引号的区别:如 a="${b}"    a='{b}'   (其中b=12),结果返回:前者a=12,后者a={b}

使用双引号,赋的是变量的值

使用单引号,赋的是单引号内的所写内容。 

单引号属于强引用,它会忽略所有被引起来的字符的特殊处理,被引用起来的字符会被原封不动的使用。

    https://www.cnblogs.com/panhongyin/p/5603508.html       --单引号、双引号、反引号

反引号和$()引起来的字符会被当做命令执行后替换原来的字符

2、变量分类

变量分 本地变量 (局部变量,当前shell使用)、全局变量(也叫静态变量,跨shell使用)、内置变量(特殊变量)。

一般写的变量,都是本地变量。

把本地变量变成全局变量,用export 变量名,即可实现把本地变量导出为全局变量。全局变量,建议变量名都是大写。

变量查询:env|grep 变量名,env可以查看所有的变量

(思考:临时变量、永久变量?)

 

3、内置变量  

https://mp.csdn.net/console/editor/html/104441993

$1 第一个参数   $2 第二个参数   以此类推(最大是$9)     $0是脚本名称  $*所有参数   $#参数个数

sh  xxx.sh  参数1  参数2  参数3

变量是变化的,可以用参数的方式进行传递。就有给 每个参数 都有个 固定的内置变量。

传参以及解析参数的过程,这个参数可以成为内置变量。

动态获取数据的方式:传参 ,键盘输入。

 

4、读取键盘录入

read -p "please input:"  myvar    ,然后输入内容,回车即可。  echo $myvar ,就会输出刚输入的内容。

 

5、将命令执行结果赋值给变量(反引号

变量名=`命令`

result=`ls`

echo ${result}      就会返回ls的结果

 

四、运算符

1、算术运算符  --   $((数学表达式))

 + - * / % 等算术运算.   /是只取商值(整数)   %取余数

echo "$((a + b))"        --》  $((数学表达式))

 

2、比较运算符  --  [ 表达式 ]

返回布尔值,即true或false。(0是true,1是false

-gt  大于    -lt   小于   -ge 大于等于   -le  小于等于    -eq  等于  -ne 不等于   (不能直接用 <>=之类的符号,得用参数的方式)

echo $?    返回上个命令行执行的结果,0是true,1是false

[ $a -gt $b ]      括号内左边和右边各有一个空格

 

3、逻辑运算符  --  [ 表达式 ]

与或非。返回布尔值,即true或false。(0是true,1是false

-a 代表and    -o 代表or   ! 代表非

[ $a -gt $b -a $b -le $c ]    a大于b,并且b小于c。

[ ! $a -gt $b ]   a不大于b

 

4、字符判断运算符  --  [ 表达式 ]

判断两个字符串内容是不是一样。返回布尔值,即true或false。(0是true,1是false

= 相等    != 不等  -z 判断字符串内容长度是否为0

[ -z $a ]   a变量是否为空内容

[ $a != $b ]  两个值是否不相等

 

5、文件判断运算符  --  [ 表达式 ]

返回布尔值,即true或false。(0是true,1是false

-d 判断是否为目录

-f 判断是否为文件

-e 判断是否存在该文件或文件夹

[ -d ${mydir} ]

test -参数 路径  等价于 [ -参数 路径 ]

 

 

视频截图:

shell学习(一) 变量+运算_第1张图片   shell学习(一) 变量+运算_第2张图片

shell学习(一) 变量+运算_第3张图片

 

 

 

 

 

 

你可能感兴趣的:(笔记,测试工具)