龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 操作系统 > LINUX系统 >

shell 变量和运算符

时间:2011-03-20 22:37来源:未知 作者:admin 点击:
分享到:
-本地变量 -影响变量的命令 -环境变量 -引号 -变量替换 -运算符 -位置变量 -表达式替换 -标准shell变量 -运算符的优先级 -特殊变量 -变量: -什么是shell变量? -本地

-本地变量 -影响变量的命令

-环境变量 -引号

-变量替换 -运算符

-位置变量 -表达式替换

-标准shell变量 -运算符的优先级

-特殊变量

-变量:

-什么是shell变量?

-本地变量

-环境变量

-变量替换(显示变量)

-位置变量

-标准变量

-特殊变量

-影响 变量的命令

-本地变量:

-本地变量在用户现在的shell生命期的脚本中使用

-variable-name=value

-set显示本地所有的变量

-readonly variable-name

#LOCALTEST="test"

#echo ${LOCALTEST}

test

#echo $LOCALTEST

test

#set 通过set查看变量

#exit 退出后查看一下还是否存在LOCALTEST变量

#readonly LOCALTEST

#LOCALTEST="test"

#readonly 查看当前shell有那些只读变量

#readonly -p

-环境变量

-环境变量用于所有用户进程(经常称为子进程).登录进程称为父进程.shell中执行的用户进程均称为子进程.不像本地变量(只用于现在的shell)环境变量可用于所有子进程,这包括编辑器,脚本和应用。

-$HOME/.bash_profile(/etc/profile)

-export

-env

#cat /etc/profile

#export Antiy="xi'an"

#env 然后查找变量Antiy

#export 也可以查看

#readonly Antiy 设置为只读

#export Antiy="xidian" 看是否可以修改,会提示不可以,因为只读了。

-变量替换:

-用变量的值替换它的名字。

-echo

-在变量名前加$,使用echo命令可以显示单个变量取值。

#testvar="this is a test"

#echo $testvar

this is a test

#echo ${testvar}

变量替换-续

${Variable name} 显示实际值到variable name

${Variable name:+value} 如果设置了variable name,则显示其值value,否则,为空!

${Variable name:?value} 如果未设置variable name,显示用户定义错误信息value!

${Variable name:-value} 如果未设置variable name, 则显示其值value

${Variable name:=value} 如果未设置variable name,设置其值,并显示

#echo ${testvar:+"xidian"}

xidian

#echo ${testvar1:+"xidian"}

为空

#echo ${testvar1:?"no defined"}

bash:testvar1:no defined

#echo ${testvar1:-"xidian"}

#echo ${testvar:-"xidian"}

xidian

#echo ${testvar:="xidian"}

this is a test

#echo ${testvar2:="xidain"}

xidian

#echo $testvar2

xidian

-变量清除:

#echo $testvar

this is a test

#unset testvar

#echo $testvar

#echo $testvar2

#readonly testvar2

#unset testvar2

-位置变量:

-位置变量表示$0,$1,$2,... ...$9

-向脚本中使用位置参数

-向系统命令传递参数

example01:

#!/bin/bash

#parm01

echo "这是脚本的名称:$0"

echo "这是脚本的第1个位置参数:$1"

echo "这是脚本的第1个位置参数:$2"

echo "这是脚本的第1个位置参数:$3"

echo "这是脚本的第1个位置参数:$4"

echo "这是脚本的第1个位置参数:$5"

echo "这是脚本的第1个位置参数:$6"

echo "这是脚本的第1个位置参数:$7"

echo "这是脚本的第1个位置参数:$8"

echo "这是脚本的第1个位置参数:$9"

example02:

#!/bin/bash

#parm02

find /home/shell/ -name $1 -print

-标准变量:

-bash默认建立了一些标准环境变量,可在/etc/profile中定义。

-EXINIT

-HOME

-IFS

echo $IFS

IFS=':'

-LOGNAME

-MAIL

-MAILCHECK

-MAILPATH

-TERM

-PATH

-TZ

-PS1

#set | grep "PS"

PS1='[\u@\h \w]\$ '

PS2='>'

-PS2

-PWD

-SHELL

-MANPATH

-TERMINFO

-特殊变量:

-$# :传递到脚本的参数个数

-$* :以一个单字符串显示所有向脚本传递的参数,与位置变量不同,此选项参数可超过9个。

-$$ :脚本运行的当前进程ID号

-$! :后台运行的最后一个进程的进程ID号

-$@ :与$*相同,但是使用时加引号,并在引号中返回每个参数

-$- :显示shell使用的当前选项,与set命令功能相同

-$? :显示最后命令的退出状态,0表示没有错误,其他任何值表明有错误

#!/bin/bash

#parm01

echo "这是脚本的名称:$0"

echo "这是脚本的第1个位置参数:$1"

echo "这是脚本的第1个位置参数:$2"

echo "这是脚本的第1个位置参数:$3"

echo "这是脚本的第1个位置参数:$4"

echo "这是脚本的第1个位置参数:$5"

echo "这是脚本的第1个位置参数:$6"

echo "这是脚本的第1个位置参数:$7"

echo "这是脚本的第1个位置参数:$8"

echo "这是脚本的第1个位置参数:$9"

echo "显示参数个数:$#"

echo "显示脚本全部参数:$*"

echo "显示进程ID:$$"

echo "显示前一命令运行后状态:$?"

影响变量的命令:

-declare

-export

-readonly

-set

-shift

-typeset

-unset

引号、双引号、单引号、反引号、反斜杠

运算符、运算符类型

精彩图集

赞助商链接