用户名: 密码: 忘记密码? 注册

shell语法之二-----设置变量

作者:  时间: 2010-11-08

set      ---设置当前shell的变量
env      ---显示当前用户的变量
export   ---导出成用户变量

$0               ---此变量的值为:当前正在运行的脚本的名字
$#               
---此变量的值为:当前正在运行的脚本的变量的个数     

$$               ---此变量的值为:当前正在运行的脚本的进程号  
$1,$2,$3...      ---此变量的值为:当前正在运行的脚本的第n个变量  
$*               ---此变量的值为:当前正在运行的脚本的全部变量 
$@               
---此变量的值为:当前正在运行的脚本的全部变量 

注意:$* 和 $@的不同之处在于:$@比$*更高级,它不使用IFS环境变量,所以即使IFS为空,参数也不会挤在一起,故推荐使用$@而不用$*
例:vi first.sh

 #!/bin/sh
 echo this is $0 program --将在终端打印"this is ./first.sh program"
 
 myvar="hello,mxh20999" --定义一个临时变量myvar
 
 echo $myvar --显示变量myvar
 echo "$myvar" --显示变量myvar
 echo '$myvar' --显示myvar字符串,之所以不同是因为双引号和单引号的区别。
 echo \$myvar  --\符号也能“干掉”$
 
 echo Enter some text--显示"
Enter some text"字符串

 read myvar --读用户输入字符串,并将其存放在myvar变量中
 echo '$myvar' is now equals $myvar --显示myvar的新值
  
 set var1 var2 var3 --设置first.sh这个脚本的参数变量为var1 var2 var3
  
 echo '$@--------->' "$@" --显示所有参数变量
 echo '$*--------->' "$*" --显示所有参数变量
 echo '$#--------->' "$#" --显示所有参数个数
 echo '$1--------->' $1   --显示所有第一个参数变量
 echo '$2--------->' $2   --显示所有第二个参数变量
 echo '$3--------->' $3   --显示所有第三个参数变量
 echo 'ID of this process is' $--显示脚本程序的进程号
 
 exit 0 --退出


运行脚本效果:

说明:如果运行./first.sh  a b c
那么a b c 即是first.sh的3个参数变量.