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,返回最后一个管道后面的返回值。

 

posted @ 2016-10-16 21:40  沄持的学习记录  阅读(156)  评论(0)    收藏  举报