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