shell脚本工具之变量

  shell中的变量类型分为环境变量,位置变量,特殊变量以及用户自定义变量,每种变量都有其特殊的功能.


系统变量:是由系统默认的变量,部分变量的值是由系统默认指定

位置变量:是根据在命令行的参数与命令行中的每一个参数关联

特殊变量:与环境变量相似

自定义变量:由用户自己定义的变量,并赋值


一.系统变量(全部大写)

[root@tong1 ~]# echo $HOME      --显示当前用户的根目录
/root
[root@tong1 ~]# echo $PATH      --显示命令的目录
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/protobuf-2.5.0/bin:/root/bin
[root@tong1 ~]# echo $LOGNAME    --显示登陆名
root
[root@tong1 ~]# echo $UID        --显示当前用户登陆的UID
0
[root@tong1 ~]# echo $SHELL      --显示当前用户的shell
/bin/bash
[root@tong1 ~]# 


二.位置变量

变量格式:

$命令   参数1   参数2   参数3 ...........


$0         --显示文件本身

$1         --对应第一个参数

$2         --对应第二个参数


[root@tong1 ~]# cat 1.sh       --如果值比变量多就为空
#!/bin/bash
echo $0 $1 $2 $3
[root@tong1 ~]# ./1.sh  9 8 7 6 5 4
./1.sh 9 8 7


[root@tong1 ~]# cat 1.sh              --用循环的方式读取变量
#!/bin/bash
echo "---------------------"
while [ $# -gt 0 ]
do
    echo "当前位置变量:$*"
    shift
done
echo "----------------------"
[root@tong1 ~]# ./1.sh 9 8 7 6 5 4
---------------------
当前位置变量:9 8 7 6 5 4
当前位置变量:8 7 6 5 4
当前位置变量:7 6 5 4
当前位置变量:6 5 4
当前位置变量:5 4
当前位置变量:4
----------------------
[root@tong1 ~]#


三.特殊变量

$#              --实际参数的个数

$*              --所有变量的值

$!              --上一个命令对应的进程号

$?              --上一个命令执行后的状态

$$              --当前进程的PID


[root@tong1 ~]# cat 1.sh
#!/bin/bash
echo "---------------------"
echo "参数的个数:$#"
echo "参数的值:$*"
echo "前三个参数:$1,$2,$3"
echo "退出的状态:$?"
echo "PID号:$$"
echo "----------------------"
[root@tong1 ~]# ./1.sh 9 8 7 6 5 4
---------------------
参数的个数:6
参数的值:9 8 7 6 5 4
前三个参数:9,8,7
退出的状态:0
PID号:3922
----------------------
[root@tong1 ~]#


四.用户自定义变量

declare和typeset都可以给变量赋值




本文出自 “一起走过的日子” 博客,请务必保留此出处http://tongcheng.blog.51cto.com/6214144/1623713

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。