27.shell编程-变量
Posted HJingLei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了27.shell编程-变量相关的知识,希望对你有一定的参考价值。
shell的变量
-
shell变量介绍
- linux shell中的变量分为系统变量和用户自定义变量
- 系统变量:$HOME、$PWD、$SHELL、$USER等等,比如:echo $HOME 等等
- 显示当前shell中所有变量:set
-
shell变量的定义的基本语法
- 定义变量:变量=值
- 撤销变量:unset 变量
- 声明静态变量:readonly 变量 【注意:不能unset】
-
#!/bin/bash #案例1:定义变量A A=100 #输出变量需要加$ echo A=$A echo "A=$A" #案例2:撤销变量A unset A echo A=$A #案例3:声明静态的变量B=2,不能unset readonly B=2 echo B=$B
-
定义变量的规则
- 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。
- 等号两侧不能有空格。
- 变量名称一般习惯为大写
-
将命令返回的值赋给变量
- A=`date` 反引号,运行里面的命令,并把结果返回给变量A
- A=$(date)等价于反引号
设置环境变量
- 语法:
- export 变量名=变量值 【将shell变量输出为环境变量】
- source 配置文件 【让修改后的配置立即生效】
- echo $变量名 【查询环境变量的值】
多行注释
:<<!
注释的内容
注释的内容
!
位置参数变量
-
介绍:
当执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量。如:./myshell.sh 100 200,这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数信息
-
语法
- $n 【n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,10以上参数需要用大括号包含,如:${10}】
- $* 【这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体】
- $@ 【这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待】
- $# 【这个变量代表命令行中所有参数的个数】
-
案例:
编写一个shell脚本position.sh,在脚本中获取到命令行的各个参数信息
#!/bin/bash
echo "0=$0 1=$1 2=$2"
echo "所有的参数=$*"
echo "$@"
echo "参数的个数=$#"
./position.sh 100 200
预定义变量
- 介绍:shell设计者事先已经定义好的变量,可以直接在shell脚本中使用
- 语法:
- $$ 【当前进程的进程号(PID)】
- $! 【后台运行的最后一个进程的进程号(PID)】
- $? 【最后一次执行的命令返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确】
- 案例:
在shell脚本中简单使用一下预定义变量,preVar.sh
#!/bin/bash
echo "当前执行的进程id=$$"
#以后台的方式运行一个脚本,并获取他的进程号
/root/shcode/myshell.sh &
echo "最后一个后台方式运行的进程id=$!"
echo "执行的结果是=$?"
./preVar.sh
以上是关于27.shell编程-变量的主要内容,如果未能解决你的问题,请参考以下文章