快速业务通道

shell 编程----变量

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-10
shell 变量
1 变量
在shell中变量是无类型可言的,因此也无需进行声明.当我们为一个变量赋值时就相当于定义了一个变量.
如:
$myvar=“Hello World”
$echo $myvar
输出结果为Hello World.第一行我们就相当于定义了一个变量myvar,并给他赋值“Hello World”.第二行输出变量的值.符号$用于取变量的内容.是一种特殊字符.可以在前面加去除它的特殊含义.如:
$echo $myvar
此时$已变为一个特殊字符,输出结果为$myvar
shell中的变量无类型,因此一个变量可以存储不同的值,如数字和字符串等,它均把这些值作为字符串
进行存储.如:
$myvar=6 8
$echo $myvar
输出结果为6 8,而不是14.
命令echo用于将变量的内容输出到终端上,从终端读取变量的内容的命令为read.如:
$read sal
$hello world
$echo sal
输出结果为:hello world.从以上命令可以看出,当我们使用一个变量时就等于定义了一个变量,并不一定非要非变量赋值时才算是定义一个变量.
2 使用引号
引号有单引号和双引号之分,它们的含义也不相同.共有一下几种情况:
(1)带空格普通字符串
$myvar="Hello World"
如果将一个带空格字符串赋值给一个变量,使用双引号引起来.否则会出错.
(2)变量值替换
echo "$myvar"
程序执行到上句代码时会将"$myvar"替换为"Hello World".此时代码为:
echo "Hello World"
输出结果为Hello World
(3)变量变字符串
echo ''$myvar''
输出结果为$myvar.
3 环境变量
环境变量是一种特殊的变量,它一般都使用大写字母做名字,用于区别用户定义的变量.这些系统变量在安装系统后就被定义好了,当然还可以改变它们的值.下面列出一些常见的环境变量: 拥有帝国一切,皆有可能。欢迎访问phome.net
$HOME 当前用户的主目录
$PATH 以冒号分割的用来搜索命令的目录列表
$PS1 命令提示符,通常是$字符,但在bash中,你可以使用一些更复杂的值.例如,字符串[u@hw]$就是一个流行的默认值,它给出用户名、机器名和当前目录名,当然也包括一个$提示符.
$PS2 二级提示符,用来提示后续输入,通常是>字符.
#IFS 输入分割符.当shell读取输入时,用来符个单词的一组字符,它们通常是空格,制表符和换行符.
$0 shell脚本的名字
$# 传递给脚本的参数个数
$ shell脚本的进程号,脚本程序通常会用它来生成一个唯一的临时文件,如/tmp/tempfile_$
如果想知道以上变量的值,可以使用echo命令进行输出查看.
4 参数变量
$1,$2... 脚本程序的参数
$* 在一个变量中列出所有的参数,各个参数之间用环境变量IFS的第一个字符分割开.
$@ 它是$*的一种精巧的变体,它不使用IFS变量,当IFS为空时,参数的值不会结合在一起.
(1)$*和$@的区别
$IFS=''''
$set foo bar bam
$echo $@
$echo $*
$unset IFS
$echo $*
$echo $@
以上程序的输出结果按照书上介绍应该是不相同的,而我在ubuntu上测试的结果则是相同的.没看出$@和$*的区别.
(2)了解参数变量
* 建立一个shell脚本如下:
#!/bin/bash
myvar="Hello World"
echo $myvar
echo "The program $0 is now running"
echo "The second parameter is $2"
echo "The first parameter is $1"
echo "The parameter list is $*"
echo "The user''s home directory is $HOME"
echo "Please enter a new greeting"
read myvar
echo $myvar
echo "The script is now complete"
exit 0
* 修改脚本文件属性可执行
chmod x shell
* 执行脚本文件
./shell first second 拥有帝国一切,皆有可能。欢迎访问phome.net
first和second是给脚本文件传进去的参数.这和windows系统下的命令参数类似.
* 输出结果
Hello World
The program ./shell is now running
The second parameter is second
The first parameter is first
The parameter list is first second
The user''s home directory is /home/hoiman
Please enter a new greeting
hi
hi
The script is now complete

本文出自 “乘风破浪” 博客,请务必保留此出处http://ihome.blog.51cto.com/2033151/427840

拥有帝国一切,皆有可能。欢迎访问phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号