分类:
2008-07-24 11:14:51
################################################
######## SHELL系统变量 ########
################################################
"$#" 传递到脚本的参数个数
"$*" 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个
"$$" 脚本运行的当前进程ID号
"$!" 后台运行的最后一个进程的进程ID号
"$@" 与$#相同,但是使用时加引号,并在引号中返回每个参数
"$-" 显示shell使用的当前选项,与set命令功能相同
"$?" 显示最后命令的退出状态。0表示没有错误,其他任何值都表明有错误
"$0" 将扩展成从命令行调用的脚本名称,
################################################
###### Shell的数组变量 ######
################################################
Bash中可以使用数组变量,其赋值有两种:
(1) name = (value1 ... valuen) 此时下标从0开始
(2) name[index] = value
数组下标的范围没有任何限制,同时也不必使用连续的分量.
A=(a b c def)
#取全部元素
echo ${A[@]}
a b c def
#取第一个元素
echo ${A[0]}
a
#取得数组元素的个数
echo ${#A[@]}
4
echo ${#A}
4
#取得元素3的长度
echo ${#A[3]}
#将第三个元素重新赋值
A[3]=test
echo ${A[@]}
a b c test
#清除变量
unset A
echo ${A[@]}
#清空变量,即将值变为空
A=
echo ${A[@]}
A=B
B=C
unset $A 事实上所取消的变量是 B 而不是 A
################################################
###### bash中的环境变量 ######
################################################
shell 环境变量是所有shell 程序都会接受的参数。shell程序运行时,都会接收一组变量,这组变量就是环境变量。常用的环境变量: 名称 描述
PATH 命令搜索路径,以冒号为分隔符.注意与DOS下不同的是, 当前目录不在系统路径里
HOME 用户home目录的路径名,是cd命令的默认参数
COLUMNS 定义了命令编辑模式下可使用命令行的长度
EDITOR 默认的行编辑器
VISUAL 默认的可视编辑器
FCEDIT 命令fc使用的编辑器
HISTFILE 命令历史文件
HISTSIZE 命令历史文件中最多可包含的命令条数
HISTFILESIZE 命令历史文件中包含的最大行数
IFS 定义SHELL使用的分隔符
LOGNAME 用户登录名
MAIL 指向一个需要SHELL监视其修改时间的文件.当该文件修改后, SHELL将发消息You hava mail给用户
MAILCHECK SHELL检查MAIL文件的周期,单位是秒
MAILPATH 功能与MAIL类似.但可以用一组文件,以冒号分隔,每个文件后可跟一个问号和一条发向用户的消息
SHELL SHELL的路径名
TERM 终端类型
TMOUT SHELL自动退出的时间,单位为秒,若设为0则禁止SHELL自动退出
PROMPT_COMMAND 指定在主命令提示符前应执行的命令
PS1 主命令提示符
PS2 二级命令提示符,命令执行过程中要求输入数据时用
PS3 select的命令提示符
PS4 调试命令提示符
MANPATH 寻找手册页的路径,以冒号分隔
LD_LIBRARY_PATH 寻找库的路径,以冒号分隔
################################################
###### bash中的变量调用处理 ######
################################################
${var#pattern} 是要将变量值左边的最短pattern去掉
${var##pattern} 是要将变量值左边的最长pattern去掉
因此,${var##*/} 是将最后一個 / 及其左边的內容去掉。
${var%pattern} 是要将变量值右边的最短 pattern 去掉。
${var%%pattern} 是要将变量值右边的最长 pattern 去掉。
因此,${var%/*} 是将最后一个 / 及其右边的內容去掉。