Shell变量

来源:互联网 发布:linux 重定向 2 1 编辑:程序博客网 时间:2024/06/14 01:06

一、基本语法

在Shell编程不需要事先定义变量,也没有变量类型的区分(所有变量都是字符串),可以说“=”和“$”就是Shell变量的一切。Shell变量以字母或“”开头,由字母、数字和“”组成,变量名区分大小写

  • “=”,赋值符号。等号两边不可以有空格

    #直接赋值A=aaaA="Hello word!"A='Hello word!'    #但引号和双引号都行,但还是有区别的,后面会讲到#传命令的输出值A=`ls /etc`
  • **“$”,取值符号。**dollar符后面直接加变量名即可

    #直接取变量的值B=$A#取命令的输出值B=$(ls /etc)
  • 命令可以接受变量作为参数

    #需要取值,不能直接把变量名写上echo $B
  • 双引号与单引号的区别
    双引号里面可以解析特殊字符,而单引号括起来的字符串是纯字符串

    NAME=DKecho "My name is $NAME"   #输出My name is DKecho 'My name is $NAME'#输出My name is $NAME
  • 字符串重组

    #例一MYHOME=/home/DKls $MYHOME/Document#以上命令等同于 ls /home/DK/Document#例二,与上例不同的是变量名后没有特殊符号隔开STRING=Stringecho ${STRING}One#以上命令等同于 echo StringOne#注,echo $STRINGOne 这样写的话系统是无法辨识变量的
  • set命令和unset命令
    set命令可以列出所有变量,而unset后跟变量名会卸载该变量

    set | grep STRING  #输出NAME='String'unset STRING   #该变量被卸载

二、位置变量和特殊变量

位置变量和特殊变量都是Shell脚本固有的变量

  • 位置变量

    - $0 脚本名称- $N 参数N
  • 特殊变量

$#    表示变量的个数,常用于循环$@    当前命令行所有参数。置于双引号中,表示个别参数$*    当前命令行所有参数。置于双引号中,表示将命令行所有参数当初一个单独参数$-(连字号)    在引用数给予Shell的选项$?    表示上一个命令退出的状态$$    表示当前进程编号$0    表示当前程序名称$!    表示最近一个后台命令的进程编号$HOME    表示当前用户根目录$IFS    表示内部的字段分隔符$LANG    当前locale默认名称$PATH    环境变量$PPID    父进程编号$PWD    当前工作目录#-------------------------------------$?”的参考值0    成功退出>0    退出失败1-125    命令退出失败,失败返回的相关值由程序定义(譬如,程序内退出只执行 exit 2,则返回为2126    命令找到了,但无法执行127    命令找不到>128    命令因受到信号而死亡

参考资料:

http://www.cnblogs.com/rond/p/3543367.html

原创粉丝点击