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都可以给变量赋值











本文转自 z597011036 51CTO博客,原文链接:http://blog.51cto.com/tongcheng/1623713,如需转载请自行联系原作者
目录
相关文章
|
3天前
|
分布式计算 Hadoop Shell
使用shell脚本实现自动SSH互信功能
使用shell脚本实现自动SSH互信功能
10 1
|
3天前
|
Unix Shell Linux
轻松编写 AIX Shell 脚本
轻松编写 AIX Shell 脚本
11 1
|
4天前
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
|
4天前
|
关系型数据库 MySQL Shell
在Centos7中利用Shell脚本:实现MySQL的数据备份
在Centos7中利用Shell脚本:实现MySQL的数据备份
|
6天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
24 5
|
6天前
|
Shell 程序员 数据安全/隐私保护
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
|
6天前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
|
7天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
15 3
|
12天前
|
弹性计算 运维 Shell
基于Shell的灵活配置管理工具
【4月更文挑战第30天】
28 1
|
12天前
|
弹性计算 运维 监控