[shell基础]——变量

变量的赋值

#定义变量,注意等号两边没有任何空格variable=#定义环境变量export variable=
#双引号:可含空格、可转义特殊字符variable=" "              
#$() 或 反引号:将命令结果赋值给变量variable=$( )  variable=`  `     
#将变量值赋值给变量gg=$aa$bb

变量的取值

#取值$variable
#标准写法,建议使用此方法
${variable} #示例: #DAY=sunday #echo $DAY sunday # echo "hello sunday"> $DAY_file.txt # ls # echo "hello sunday"> ${DAY}_file.txt # ls sunday_file.txt 

变量的取消与查看

#unset:取消变量和函数unset variableunset function
#env    查看系统所有的环境变量#set    查看所有的系统预设变量+用户自定义变量

局部变量/用户变量

局部变量:只在当前的shell中有效; 用户变量:针对与当前用户有效, .bashrc 下可以查看。

全局变量/环境变量

当前创建变量的shell即为父shell,全局变量可以从父shell传递到子shell、孙shell···

注意环境变量只能向下传递而不能向上传递。

一些常见的预设变量(可通过 man bash查看):

#变量BASH:显示当前的bash shell[root@localhost shell]# echo $BASH/bin/bash#变量BASH_VERSION:显示当前bash shell版本[root@localhost shell]# echo $BASH_VERSION4.1.2(1)-release#变量HOSTNAME:主机名[root@TXY_host test]# echo $HOSTNAMETXY_host#变量HOSTTYPE:主机架构[root@TXY_host test]# echo $HOSTTYPEx86_64#变量MACHTYPE:主机类型的gnu标识[root@TXY_host test]# echo $MACHTYPEx86_64-redhat-linux-gnu#变量LANG:系统的语言环境[root@TXY_host test]# echo $LANGC#设置语言环境为中文# export LANG=zh_CN.UTF-8#变量PWD:当前目录[root@TXY_host test]# echo $PWD/shell/test#变量OLDPWD:上一次访问目录[root@TXY_host test]# echo $OLDPWD/shell#变量EUID:显示当前用户的UID[root@localhost ~]# echo $EUID0#变量CDPATH:可以快速进入此目录#cd时会首先查看当前目录是否有network-scripts,若没有则进入CDPATH定义的目录[root@localhost shell]# CDPATH="/etc/sysconfig"[root@localhost shell]# cd network-scripts/etc/sysconfig/network-scripts#变量FUNCNAME:用在函数内,显示当前函数名[root@TXY_host test]# cat funcname.sh#/bin/bashfuncname(){   echo $FUNCNAME}funcname[root@TXY_host test]# bash funcname.shfuncname

特殊变量

1.位置参数

$0:预留保存实际脚本名字;无论脚本是否有参数,此值均可用。 $1-$9:第1—9个参数

${10}:位置参数大于9后的表示方法

$#:脚本参数的个数总和

$*/$@:表示脚本的所有参数

2. 特定的变量参数

$! Shell最后运行的后台Process的PID $- 显示shell使用的当前选项,与set命令功能相同 $$ 脚本运行的当前进程ID号

# cat aatest.sh#!/bin/bashecho $$# ./aatest.sh3520

3.命令返回值

执行一条命令后,

$? 值为0表示执行成功,非0则表示执行失败。

无论如何,没有人有办法把自己抑或他人的刺拔掉。那是一碰便痛的软肋,

[shell基础]——变量

相关文章:

你感兴趣的文章:

标签云: