linux shell 编程中的特殊符号

linux shell 编程中的特殊符号
2009年03月10日 星期二 18:53
这是看书的时候记下来的笔记
  • 一、井号 #
  • 1、在脚本文件中对一行进行注释。
  • 2、在引号和/符号后不是注释,只是#号本身:
  • echo "12 # hehe"
  • echo '12 # hehe'
  • echo 12 /# hehe
  • 3、参数替代
  • echo $(PATH#*:)
  • 4、进制数转换
  • echo $((16#a));将十六进制数a转换为十进制数表示出来
  • echo $((5#3));将5进制数3转换为十进制数表示出来
  • 5、模式匹配
  • echo ${#string};获得变量string所含字符的个数,如果string是个数组,则获得数组第一个元素所含字符个数。
  • 二、分号 ;
  • 1、分割符,在同一行中用分号可以隔开两个命令:
  • ls;cat hello
  • 2、在引号和/符号后不是分割符,只是;号本身。
  • 三、;;
  • 1、两个分号,作为case选项的终结符:
  • case "$variable" in
  • abc) echo "$variable = abc" ;;
  • xyz) echo "$variable = xyz" ;;
  • esac
  • 四、句号 .
  • 1、点开头的文件是隐藏文件,要用ls -a才能看到。
  • 2、一个点指代当前目录,两个点指代上级目录。
  • 五、引号
  • 1、双引号 ""
  • 双引号中的大多数字母或符号都代表它本身
  • 2、单引号 ”
  • 单引号中的所有字母或符号都代表它本身
  • 六、逗号 ,
  • 逗号用于分开多个算术表达式,对每个表达式都进行计算,但仅仅返回最后一个表达式的值。
  • let "t = (a = 9,5+3)"#该表达式中,对a赋值为9,计算出来t为8
  • 七、反斜杠 /
  • /号表示后面的符号仅仅代表该符号本身,但只有一位有效。比如
  • /a就和'a'一个效果
  • 八、正斜杠 /
  • 1、文件名分割符,如
  • /usr/locale/share/
  • 2、除法符号
  • 九、反引号 `
  • 命令取代?
  • 十、冒号 :
  • 1、空命令,返回值为0,和true命令一样,可以在做无限循环的条件。
  • 2、提醒后面有一个二进制命令需要执行
  • : ${username = `whoami`}#如果没有:则该行会出错
  • 3、参数取代?
  • : ${HOSTNAME?}
  • 4、与>重定向符号一起创建一个文件(如果没有),或者截断一个文件(该文件已存在),该文件的长度为0
  • : > data.exe 和cat /dev/null > data.exe效果相同
  • 5、与>>重定向符号一起更新一个文件的访问及修改时间,如果没有该文件,则创建之。和touch功效相同
  • 注意,4、5两条都仅对规则文件起作用,对管道,软连接以及一些特殊文件都没有用
  • 6、域分割符
  • 如$PATH变量中间的冒号
  • 十一、感叹号 !
  • 1、非号,把退出状态变成由0变成1,由等于变成不等 = ,!=
  • 2、间接变量参考?
  • 3、两个感叹号表示上一个命令 !!
  • 十二、星号 *
  • 1、通配符,可以在正则表达式中代替任何字符或者数字
  • 2、乘号
  • 3、两个星号表示指数 **
  • 十三、问号 ?
  • 1、测试符号,用于条件测试?
  • 2、通配符,可以在正则表达式中代替一个字符或者数字
  • 十四、$
  • 1、变量符号
  • 2、表示一行的终止
  • 3、${}变量取代
  • 4、$1,$2,$3等等,指从命令行向脚本输入的第一个,第二个,第三个参数。$0指脚本本身。
  • 5、$#,指从命令行向脚本输入的参数个数。
  • 6、$*,指从命令行向脚本输入的所有参数,但是看成一个词。
  • 7、$@,指从命令行向脚本输入的所有参数,但是每个参数是根据IFS变量分开的。
  • 比如:export IFS=':',再echo $PATH,得到的结果是:/usr/local/sbin /usr/sbin /sbin /usr/local/bin /usr/bin /bin /usr/games /usr/lib/apache-ant/bin /usr/lib/java/bin /usr/lib/java/jre/bin /usr/lib/qt/bin /usr/share/texmf/bin
  • 8、$?,退出状态变量。
  • 9、$$,进程的ID号码。
  • 十五、圆括号 ()
  • 1、命令组
  • (a = 123;echo $a)
  • 该命令组写了一个子脚本,子脚本中的变量对子脚本外的一切脚本均不可见。
  • 2、数组初始化
  • array = (element1 element2 element3)
  • 十六、大括号 {}
  • 1、括号扩展?比如
  • grep linux file*.{txt,htm*}
  • 在file2.txt,file1.htm,file1.html等文件中查找linux字符串
  • 2、代码块,作为子函数,不能用于终端中,子函数中的变量对其他脚本还是可见的。
  • 3、代码块中的函数可以进行输入输出重定向。
  • {
  • read line1
  • read line2
  • } < /etc/fstab
转自:http://blog.sina.com.cn/s/blog_4bab23570100bzwe.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值