$HOME
当前用户的家目录
$PATH
以冒号分隔的用来搜索命令的目录列表
$PS1
命令提示符,通常是$字符,但在bash中,可以使用一些更复杂的值。例如,字符串[\u@\h\w]$就是一个流行的默认值,它给出用户名/机器名和当前的目录名,当然也包括一个$提示符。
$PS2
二级提示符,用来表示后续的输入,通常是 > 字符。
$IFS
输入域分隔符。当shell读取输入时,它给出用来分隔单词的一组字符,他们通常是空格,制表符和换行符。
$0
shell脚本的名字
$#
传递给脚本的参数的个数
$$
shell脚本的进程号,脚本程序通常会用它来生成一个唯一的临时文件,如/temp/tmpfile_$$
$1 , $2 , ...
脚本程序的参数
$*
在一个变量中列出所有的参数,各个参数之间用环境变量IFS中的第一个字符分隔开。如果IFS被修改了,那么$*将命令行分隔为参数的方式将随之改变。
$@
它是$*的一种精巧的变体,它不使用IFS环境变量,所以即使IFS为空,参数也不会挤在一起。
#!/bin/sh
salutation="Hello"
echo $salutation
set foo bar bam
echo "The program $0 is now running"
echo "The second parameter was $2"
echo "The first parameter was $1"
echo "The parameter list was $*"
echo "The user's home directory is $HOME"
echo "Please enter a new greeting"
read salutation
echo $salutation
echo "The script is complete"
exit 0
这个脚本程序创建变量并显示它的内容,然后显示各种参数变量以及环境变量$HOME都已经存在并有了适当的值。