shell基础——变量
变量:
a=1
echo $a
系统变量:
echo $HOME
echo $USER
env #查看所有环境变量
set #查看自定义变量
~/.bash_logout #用户登出后执行
~/.bash_profile #用户设定环境变量的文件
~/.bashrc #设定别名的文件
/etc/bashrc /etc/profile #对所有用户都生效
readonly声明只读变量
readonly ARGS="$@"
local声明局部变量,只能用于函数内。
change_owner_of_files() { local user=$1; shift local group=$1; shift local files=$@ local i for i in $files do chown $user:$group $i done }
export声明变量,能让子进程和其他脚本识别该变量
cat 1.sh
#!/bin/bash export aaa=111
sh 2.sh
cat 2.sh
#!/bin/bash echo $aaa
变量引用:
$变量名
${变量名}
切片:
a=12345 echo ${a} echo ${a:1:2} #1表示从第二个开始,2表示截取两个字符。结果是23
取消变量:
unset 变量名
命令结果赋值给变量:
a=`which mount` echo $a #结果 /bin/mount b=$(uname -r) echo $b #结果 2.6.32-431.el6.x86_64
$()同``,都是执行命令得出结果。$()可以嵌套使用。
数组:
abc=( 1 2 a b "xyz" ) #可以是数字,字母,或者字符串 echo ${abc[0]} #第一个变量 echo ${abc[*]} #查看数组全部值 echo ${#abc[*]} #查看数组内值得个数
set --表示清除参数,重新设置位置参数
# cat test.sh echo $1 set -- aaa echo $1 # sh test.sh bbb bbb aaa
set -o pipefail
set -o pipefail ls a | echo "aa" echo $? # 设置了set -o pipefail,返回从右往左第一个非零返回值;如果不设置set -o pipefail,返回最后一个管道后面的返回值。

浙公网安备 33010602011771号