shell 基本使用

一、shell编程变量简介

 shell编程语言属于弱语言,在使用变量前无需对变量进行声明,变量的默认类型为“字符串类型”,可以通过echo $变量名 进行提取变量的值。在bash中,变量类型分为:环境变量、本地变量(局部变量)、位置变量、特殊变量,其中环境变量和本地变量是以作用域来进行区分。
 
二、变量配置原则
1、变量名只能采用英文字母跟数字命名,并且不能以数字开头
2、给变量赋值时,等号两边不能有空格
3、若等号右边字符串之间有空格或者特殊符号,可以采用 [双引号、单引号]进行括住
例如:NAME='ZWS is a Student'
            NAME="ZWS is a Student"
注意:
    a. 单引号与双引号的区别:单引号扩住的内容是属于字符串,纯文本的,不会对特殊字符进行转义,双引号扩住的内容会对特殊字符进行转义。
     b.如果字符内容存在' " 特殊字符时,需要注意,因为单引号、双引号是成对出现的。
4、可以采用 \ 将特殊字符转换成一般字符(空格、$等)
5、如果需要其他命令返回的值,可通过` `(反单引号)或者$() 扩住相关命令
6、如果需要在子程序中运行,需要通过export将该变量变成环境变量(默认情况下所有的变量都是属于局部变量)
7、取消变量
unset 变量名
8、 ${变量名} 如果能够准确的明确变量明时,可以省略{}

 

三、变量的数据类型
  默认情况下变量的数据类型都是属于字符串类型,没办法对变量进行运算等操作,可以通过declare、typeset方式来设置变量的数据类型。总共有 整型、字符串、数组 等数据类型。
 
1、declare的使用方法
declare [-aixr] variable
选项与参数:
-a  :将后面名为 variable 的变量定义成为数组 (array) 类型
-i  :将后面名为 variable 的变量定义成为整数数字 (integer) 类型
-x  :用法与 export 一样,就是将后面的 variable 变成环境变量;
-r  :将变量配置成为 readonly 类型,该变量不可被更改内容,也不能 unset

 a.让sum进行100+200+300数字运行得出和
b.将sum变成环境变量
c.将sum变成只读属性
d.将sum变量转回非环境变量
 
 
四、变量作用域
#本地变量:作用域为整个bash进程有效
VARNAME=VALUE
 
#局部变量:作用域为当前代码段有效
local VARNAME=VALUE 
 
#环境变量:作用域为当前的shell进程及其子进程
export  VARNAME=VALUE

 

五、环境变量

注意:
1、脚本在执行时会启动一个字shell子进程
2、命令行启动脚本启动脚本会继承当前shell环境变量。
3、系统自动执行的脚本(非命令行启动),需要手动定义环境变量。 ===》(crontab自动执行执行脚本可能有问题)
 
 
六、if条件判断
1、单层简单条件判断
if [ 条件判断]; then
       符合条件执行该语句
fi     ---->结束 if
2、多重条件判断
if [ 条件判断式一 ]; then
    符合条件一,执行该语句
elif [ 条件判断式二 ]; then
    符合条件二,执行该语句
else
    条件一与二均不成立时,执行该语句
fi  ------>结束if语句

 

七、case判断

1、case应用场景:
适用于需要进行多重分支的应用情况(固定重数)
 
2、case语法格式
 
case  $变量名称 in   <===以case开头 $+关键字  然后in结尾
      模式1        <===判断语句,可采用特殊字符
    程序段1
   ;;                     <===使用两个连续的分号,代表该模式程序段结束,类似c语言中的break;
      模式2 )
    程序段2
    ;;
              *        <===用 * 来代表所有其他值,类似c语言中的default。
   默认执行程序段
    ;;
esac                  <===结束case语句 【case反过来写】
posted @ 2017-04-09 22:44  漫舞沧海  阅读(90)  评论(0编辑  收藏  举报