shell 变量介绍

Posted 风中飞沙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 变量介绍相关的知识,希望对你有一定的参考价值。

变量命名规则

变量名必须以字母或下划线开头,名字中间只能由字母,数字和下划线组成,大小写是区分的
变量名的长度不得超过255个字符
变量名在有效的范围内必须是唯一的
在Bash中,变量的默认类型都是字符串类型
"用户自定义变量"
 ? ?变量自定义的
"环境变量" 
 ? ?这种变量中主要保存的是和操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的。
"位置参数变量" ? 
 ? ?这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
"预定义变量"
 ? ?是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的
 ? ?
"可以将一个命令的执行结果赋值给变量,但是需要使用命令替换符号"
[[email protected] shell]# cat start.sh 
#!/bin/bash
echo 'ssgao ai xiaoxiao'
mypath=`pwd` //使用命令替换符,或来获取命令执行结果
echo $mypath
?
[[email protected] shell]# cat pwd.sh 
#!/bin/bash
mypath=$(pwd) //使用$()来获取命令执行结果
echo $mypath
[[email protected] shell]# sh pwd.sh 
/root/shell
?
"注意单引号和双引号的区别"
注意单引号和双引号的区别,""号会把里面的变量值进行输出,''是把内容原封不动的输出,不会识别里面的变量。
[[email protected] shell]# cat start.sh 
#!/bin/bash
echo 'ssgao ai xiaoxiao'
mypath=`pwd`
touch log.log
ifconfig >log.log
patha="当前路径:${mypath}"
pathb='当前路径: ${mypath}'
echo $mypath //输出:/root/shell
echo $patha //输出:当前路径:/root/shell
echo $pathb //输出:当前路径: ${mypath}

自定义变量

'变量名=变量值'
 ? ?1) 变量不能使用数字开头
 ? ?2) '='左右两侧不能加空格:
 ? ?name="jie cao" //变量值有空格需要用""括起来 ? 
"变量调用"
 ? ?echo $变量名 //调用变量,在变量名前面加'$'符号
 ? ?192:~ aouo$ y=6 //声明变量
 ? ?192:~ aouo$ x=5 //声明变量
 ? ?192:~ aouo$ z=$x+$y ?//调用变量x和变量y
 ? ?192:~ aouo$ echo $z //结果为5+6
"变量的叠加" ? ?
 ? ?x=123
 ? ?x="$x"456
 ? ?x=${x}456
 ? ?-----------------
 ? ?192:~ aouo$ x=123
 ? ?192:~ aouo$ echo $x // 结果为123
 ? ?192:~ aouo$ x="$x"456
 ? ?192:~ aouo$ echo $x //结果为123456 ?
"查看所有变量"
 ? ? [[email protected] shell]# ?set ?
 ? ? STORM_HOME=/root/storm/apache-storm-1.1.1
 ? ? TERM=xterm
 ? ? UID=0
 ? ? USER=root
"删除变量" 
 ? ?unset 变量名 ?
 ?  [[email protected] shell]# name=ssgao //声明变量
 ?  [[email protected] shell]# echo $name //输出ssgao
 ?  [[email protected] shell]# unset name //删除变量
 ?  [[email protected] shell]# echo $name
 -bash: name: unbound variable

位置参数变量

$n
n为数字,$0代表命令本身,$1~$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
$*
这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
[email protected]
这个变量也代表命名行中所有的参数,不过[email protected]把每个参数区分对待
$#
这个变量代表命令行中所有参数的个数
192.168.10.101:shell_start aouo$cat add.sh 
#!/bin/bash
no1=$1
no2=$2
no3=$(($no1+$no2))
#变量no3的和是no1加no2
echo $no3
#打印变量no3的值
-------------------------------------------------
192.168.10.101:shell_start aouo$./add.sh 1 10
11
-------------------------------------------------
$1 = 1 位置参数1
$2 = 10 位置参数2

预定义变量

$?
最后一次执行的命令返回状态,如果这个变量的值为0,证明上一次命令正确执行。如果这个变量的值非0
证明上一个命令执行不正确了
$$
当前进程的进行号(PID)
$!
后台运行的最后一个进程的进程号(PID)

以上是关于shell 变量介绍的主要内容,如果未能解决你的问题,请参考以下文章

Liunx----Shell脚本简单介绍 Shell运行环境和Shell变量

Shell编程入门

六十七shell脚本介绍shell脚本结构和执行date命令用法shell脚本中的变量

shell脚本介绍结构和执行date命令用法shell脚本中的变量

shell脚本介绍,shell脚本结构和执行,date命令用法,shell脚本中的变量

shell编程概念介绍及变量定义--关于脚本运行与shell进程之间的关系