shell 编程学习笔记

第1 章 为什么使用shell 编程
第2 章 带着一个Sha-Bang 出发(Sha-Bang 指的是#!)
第3 章 特殊字符
#     注释,行首以#开头为注释(#!是个例外).
;     命令分隔符,可以用来在一行中来写多个命令.
;;     终止"case"选项.
    1 case "$variable" in
    2 abc) echo "\$variable = abc" ;;
    3 xyz) echo "\$variable = xyz" ;;
    4 esac
.     .命令等价于source 命令(见Example 11-20).这是一个bash 的内建命令.
.     .作为文件名的一部分.如果作为文件名的前缀的话,那么这个文件将成为隐藏文件.
将不被ls 命令列出.
.    .字符匹配,这是作为正则表达是的一部分,用来匹配任何的单个字符.
"     部分引用."STRING"阻止了一部分特殊字符,具体见第5 章.
'     全引用. 'STRING' 阻止了全部特殊字符,具体见第5 章.
,     逗号链接了一系列的算术操作,虽然里边所有的内容都被运行了,但只有最后一项被
返回
\     转义字符,如\X 等价于"X"或'X',具体见第5 章
/     文件名路径分隔符.或用来做除法操作.
:     空命令,等价于"NOP"(no op,一个什么也不干的命令).也可以被认为与shell 的内建命令(true)作用相同.":"命令是一个bash 的内建命令,它的返回值为0,就是shell 返回的true
!     取反操作符,将反转"退出状态"结果,(见Example 6-2).也会反转test 操作符的意义.比如修改=为!=.!操作是Bash 的一个关键字.在一个不同的下文中,!也会出现在"间接变量引用"见Example 9-22.在另一种上下文中,!还能反转bash 的"history mechanism"(见附录J 历史命令)需要注意的是,在一个脚本中,"history mechanism"是被禁用的.
*     万能匹配字符,用于文件名匹配(这个东西有个专有名词叫file globbing),或者是正则表达式中.注意:在正则表达式匹配中的作用和在文件名匹配中的作用是不同的.
bash$ echo *
abs-book.sgml add-drive.sh agram.sh alias.sh
*     数学乘法.**是幂运算.
?    在file globbing 中和在正则表达式中一样匹配任意的单个字符.
$     变量替换
$     在正则表达式中作为行结束符.
${}     参数替换,见9.3 节.
$*,$@     位置参数
$?     退出状态变量.$?保存一个命令/一个函数或者脚本本身的退出状态.
$$     进程ID 变量.这个$$变量保存运行脚本进程ID
()     命令组
{}     代码块.又被称为内部组.事实上,这个结构创建了一个匿名的函数.但是与函数不同的是,在其中声明的变量,对于脚本其他部分的代码来说还是可见的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值