Welcome 微信登录

首页 / 操作系统 / Linux / Linux Shell学习笔记

#       注释,或者脚本第一行的#!/bin/bash;        命令分隔符,可以用来在一行中来写多条命令;;       终止case  例如:         case  "$variable"  in         abc)  echo "$variable=abc"  ;;         xyz)  echo  "$variable=xyz" ;;         esac"       部分引用"        全部引用       转义,       分隔算术操作,只有最后一项被返回        let "t2=((a=9,15/3))"        #set "a=9" and "t2=15/3"`      后置引用,命令替换:     空命令,等价于"NOP",起到true的作用        如:        :        echo $?   #0        死循环:        while:        do            ...        done        在if/then中的占位符,如:        if condition        then :        else               take-some-action        fi        在一个2元命令中提供占位符:        :${username="whoami"}        使用“参数替换”来评估字符串变量        :${HOSTNAME?}${USER?}${MAIL?}        #如果一个或多个必要的环境变量没被设置,就会打印出错信息         :>data.txt  #文件data.txt被清空         ":"用来做环境变量的分隔符         echo $PATH         /usr/local/bin:/usr/x11r6/bin:/sbin*       匹配文件名中的任意字符,数学运算中的乘**     幂运算!        取反?       测试操做$       变量替换$       正则表达式的结束符${}   参数替换$*,$@  位置参数$?     退出状态,0为成功,非0为失败$$     进程ID变量,脚本的进程ID()      命令组,子shell。子shell中的变量对于脚本剩下的部分不可用,例如:          a=123          (a=321;)          echo "a=$a"   #a=123         初始化数组:         Array=(element1,element2,element3){aaa,bbb,xxx...}         大括号扩展,其中不能有空格,         cat {file1,file2,file3}>combined_file         #将file1,file2,file3{}     代码块:创建了一个匿名函数,但与函数不同的是,在其中声明的变量对于脚本的其他部分还是可见的         a=123         {a=321;}         echo "a=$a"   #a=321         与()不同,{}中的代码块将不能正常地开启一个新的shell[]       test表达式         if [ -z "$1" ]   判断第1个参数是否为空         if [ "$?" -eq 0 ] 判断上一条语句是否成功         if [ -n "$2" ]   判断第2个参数是否为整型         ......[]       数组元素:         Arrary[1]=slot_1         echo ${Array[1]}>,>>,<<,<    重定向         scriptname>filename 重定向脚本输出到文件中,并覆盖原有文件         command&>filename 重定向stdout和stderr到文件中         command>&2 重定向stdout到stderr中 ,1为stdout,2为stderr         scriptname>>filename 重定向到脚本输出到文件中,并添加到文件末尾<,>    ASCII比较<,>  正则表达式中的单词边界         grep  "<the>"  textfile|        管道,用来产生命令链         cat  *.lst | sort | uniq         #合并和排序所有的"*.lst"文件,然后删除所有重复的行         管道中的一个进程的stdout必须被下一个进程做为stdin读入,如果管道中的某个命令产生一个异常,并中途失败,那么这个管道将过早的终止,这种行为被叫做“a broken pipe”,并且这种状态下将发送一个SEGPIPE信号>|     强制重定向||      或逻辑&      后台执行&&    与逻辑-       之前的工作目录        cd - #进入到上一个工作目录        与$OLDPWD的环境变量相同~      home目录~+    当前的工作目录,与$PWD相同~-     之前的工作目录,相当与$OLDPWD^      正则表达式中的表示行首例子来源于《高级Bash脚本编程指南》下载见http://www.linuxidc.net/thread-2055-1-1.html