shell脚本运行方式以及变量的定义和调用

目录

shell语言的特性

shell脚本程序的运行方式

变量的定义与调用

shell变量

自定义变量 

定义系统变量

重复定义变量

变量的操作                

引用变量

查看变量:

删除变量:

交互式定义变量

引号的区别:

整数运算:

小数运算:

环境变量:    

位置变量与预定义变量:

位置变量:

预定义变量:


shell语言的特性

shell语言是指unix操作系统的命令语言,同时又是该命令语言的解释程序的简称
shell本身是一个c语言编写的程序,他是用户使用unix/linux的桥梁,用户的大部分工作都是通过shell完成的
shell即是一种命令语言,又是一种程序设计语言。
作为命令语言,它交互式地解释和执行用户输入的命令
作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制和结构,包含循环和分支
他虽然不是unix/linux系统内核的一部分,但他调用了系统核心的大部分功能来执行程序
建立文件并以并行的方式协调各个程序之间的运行
因此,对于用户来讲,shell是最重要的实用程序,掌握shell语言的特性及使用方法,是用好unix/linux的关键
shell可以做任何事,一切取决于业务需求

shell脚本程序的运行方式

执行1:bash 脚本
执行2:sh 脚本
执行3:. 脚本
执行4:source 脚本
        
多种执行方式的区别:
bash和sh是子shell
.和source是本shell
            
查看shell解释器的工作位置:cat /etc/shells   |  chsh -l


变量的定义与调用

shell变量

用一个固定点字符串去表示不固定的内容,便于修改

自定义变量 

用户自定义变量是最常用的变量类型,其特点是变量名和变量值都是由用户自由定义的。
            
定义变量:变量名=变量值    遵循变量定义规则

注意:
      不能使用标点符号
      不能使用bash中的关键字(可用help命令查看保留关键字)
      定义变量只能使用英文字母、数字和下划线,首个字符不能以数字开头
      等号左右两侧不能有空格
      变量的值如果包含空格,必须用引用包含 {引用""}


                
            

定义系统变量

export  变量名=变量值       系统变量在哪里都可以调用
exprot 将变量提升成环境变量


            

重复定义变量

重复定义变量会进行变量叠加
变量重复使用会造成变量覆盖
在进行变量叠加时,使用${变量名}格式
在进行变量叠加时,变量名需要用""或者${}包含
                
例如:
       定义变量aa的值123     aa=123
       叠加使用时要用""或者${}包含     aa=${aa}456  或者  aa="$aa"456
       如果不使用""或者${}包含,就会造成变量覆盖    aa=456 

变量的操作
                

引用变量
$变量名   
查看变量:
echo $变量名;
set:显示与设置shell变量信息
env:查看当前系统中所有变量


            

删除变量:
unset 变量名

交互式定义变量

read从键盘读入变量值    赋值方式:read 变量名
read -p "文字提示信息:" 变量名

引号的区别:

"":弱引用   只能转译一些比较常见的空格,通常做分隔作用
'':强引用   在单引号内部的所有特殊符号,都将失去它本身的含义,只余下字符含义
``:优先执行 优先执行引号内的语句、内容,通常用在命令的运行结果成为其他命令的参数时

整数运算:

符号:+加 -减 \*乘(*是任意字符,使用\转义) /除 %取余
            
echo -n  ""  //echo在输出结束后,不自动加换行符
            
方法一:expr
                expr 变量 符号 变量

方法二:$(())
                $((变量 符号 变量))
            
方法三:$[]
                $[变量 符号 变量]
            
方法四:let
                let 变量名=变量 符号 变量
                echo $变量名
            


        

小数运算:

提前安装bc程序:yum -y install bc
echo "变量 符号 变量" | bc
echo "scale=2 ;变量 符号 变量" | bc
echo "小数的位数=位数 ;变量 符号 变量 " | bc


        

环境变量:    

平时做的变量叫自定义变量,只能在当前shell使用
定义环境变量:export  变量名=变量值
ecport 变量名   (将已经存在自定义变量,转换为环境变量)
            
环境变量作用范围:只在本shell和子shell有效
想使变量在当前用户登录后一直生效,可以将变量放到/~/.bash_profile
想使变量在所有用户登录后一直生效,可以将变量放到/etc/profile
            
env:查看环境变量

        
        

位置变量与预定义变量:

这两类变量,在设计程序的时候就已经定义好了,需要的时候,直接调用就可以

位置变量:
命令 参数1 参数2 参数3.....以后特殊定义
$0    $1   $2    $3  $4 $5 $6 $7 $8 $9...
                
位置变量就是$0 $1 $2 $3 
位置变量预先已经被定义过了
用户使用时候,必须携带参数
位置变量不是设计程序唯一的办法。如read也可以实现相同功能
预定义变量:
被系统已经预先定义好的,随时都会使用的特殊变量
$0 脚本名/程序名
$* 所有的参数
$? 上一个程序的返回值(0是成功,非零失败)
$$ 程序的PID
$# 参数的个数   例:${#变量}   输出变量的个数


                
            

你可能感兴趣的:(linux,shell,chrome,前端,linux)