文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Shell编程的几个环境变量和参数变量

Shell编程的几个环境变量和参数变量

时间:2006-03-18  来源:aloneboylz

1. 环境变量 在Shell脚本程序开始执行的时候,一些变量会根据环境中的值进行初始化. 这些变量通常使用大写的字母做名字,用户在脚本程序里定义的变量一般使用小写字母做名字. 下面是一些比较常见的变量: $HOME 当前用户的登陆目录 $PATH 用冒号分隔的命令搜索目录清单 $PS1 命令行提示符,通常是"$"字符 $PS2 辅助提示符,用来提示后续输入,通常是">"字符 $IFS 输入分隔符. 当shell读取输入数据的时候,会把一组字符看做是单词之间的分隔字符,它们通常是空格,制表符,和换行符. $0 shell脚本程序的名字. $# 传递到脚本程序的参数个数. $$ 该shell脚本程序的进程ID,脚本一般会使用他来创建唯一的临时文件,比如/tmp/tmpfile_$$   2. 参数变量 如果脚本程序在调用时还带有参数的话,就会产生一些变量. 即使脚本没有传递任何参数,上面提到的$#也是存在的,只不过它的值是0. 常见的参数变量如下: $1,$2,$3...  脚本程序的参数 $* 一个全体参数组成的清单,这是个单独的变量,各个参数间用环境变量IFS中的第一个字符分隔开. $@ 它是"$*" 的一种变量,它不使用IFS环境变量 "$*" 和 "$@"  两个参数间的区别在X/Open的技术规范里有详细解释. 当双括号里的字符发生名-值替换的时候,"$*"整体扩展为一个数据域,各个参数间用IFS("Internal Field Separator") 的第一个字符分隔开;如果取消了对IFS的设置.就用一个空格加以分隔. 如果IFS被设置为一个空字符(这与取消对它的设置不同),参数的值就会接合在一起. 例如: $IFS='' $set foo bar bam $echo "$@" foo bar bam $echo "$*" foobarbam $unset IFS $echo "$*" foo bar bam 从上面的例子可以看出,双引号里面的 "$@" 把各个参数依然扩展为彼此分开的数据,不受IFS的变量值的影响. 一般来说,如果你想访问脚本程序的参数,用"$@"是个比较好的选择.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载