shell 编程之变量

0x00 shell 变量基础

     shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义。所以若要进行数学运算,必须使用一些命令例如let、declare、expr、双括号等。shell变量可分为两类:局部变量和环境变量。局部变量只在创建它们的shell中可用。而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用。有些变量是用户创建的,其他的则是专用shell变量。变量名必须以字母或下划线字符开头。其余的字符可以是字母、数字(0~9)或下划线字符。任何其他的字符都标志着变量名的终止。名字是大小写敏感的。给变量赋值时,等号周围不能有任何空白符。为了给变量赋空值,可以在等号后跟一个换行符。

 

0x01 shell 变量的声明

变量名=变量值      

注意:1. 变量名与变量值之间不能有空格。

   2. shell中默认把变量值当作字符串

例如: var="Tom"

num=100

num = $num+101

echo num   // 输出为100+101

 

0x02 shell 变量引用

 

0x03 shell 常用命令

  1. set 命令 -- 可以查看所有的变量,

    set 

  2. unset 命令 --  可以清除变量,相当于没有定义过。

    unset 变量名

  3. readonly 命令 -- 可以把变量变为只读变量,定义之后不能对变量进行任何更改

    readonly 变量名

  4. let 命令 -- 使其进行数学运算

    var=100

    let var=var+101

    echo var  // 结果为201

  5. declare 命令 -- 定义变量类型

    declare [选项] 变量=变量值

    选项:

      -i  整型

      -a  将变量分配一个数组 分配元素

      -f  列出函数的名称和定义

      -F  只列出函数名

      -r  将变量设为只读

      -x  将变量名输出到子shell中


0x04 shell 特殊变量和位置变量

这组专用内置变量常常被称为位置变量。通常被shell脚本用来从命令行接收参数,或者被函数用来保存传给它的参数。

$0:当前脚本的文件名
$num:num为从1开始的数字,$1是第一个参数,$2是第二个参数,${10}是第十个参数
$#:传入脚本的参数的个数
$*:所有的位置参数(作为单个字符串) 
$@:所有的位置参数(每个都作为独立的字符串)。
$?:当前shell进程中,上一个命令的返回值,如果上一个命令成功执行则$?的值为0,否则为其他非零值,常用做if语句条件
$$:当前shell进程的pid
$!:后台运行的最后一个进程的pid
$-:显示shell使用的当前选项
$_:之前命令的最后一个参数

"$*"  其值为 "$1 $2 $3"

"$@"  其值为 "$1" "$2" "$3"

 

  

 

posted @ 2015-08-06 18:33  Tom-kevin  阅读(192)  评论(0)    收藏  举报