您的位置:首页 > 运维架构 > Shell

Linux Shell 《abs_guide》 学习笔记(2)

2009-11-02 16:00 218 查看
3. 特殊符号

# 注释,行首以'#'开头为注释(#!例外)

注意:在echo命令中被转义的#是不能作为注释的;同样的,#也可以出现在特定的参数替换结构中或者是数字常量表达式中。

例:

1. echo "The # here does not begin a comment."

2. echo 'The # here does not begin a comment.'

3. echo The /# here does not begin a comment.

4. echo The # here does begin a comment

5.

6. echo ${PATH#*:} #参数转换,不是注释

7. echo $((2#101011)) #参数转换,不是注释

标准的引用和转义字符("'/)可以用来转义#

; 命令分隔符,可以用来在一行中写多个命令

有时候需要转义

;; 中止'case'选项

例:

1. case "$variable" in

2. abc) echo "/$variable = abc" ;;

3. xyz) echo "/$variable = xyz" ;;

4. esac

. .命令等价于source命令,这是一个bash内建命令。

. .作为文件名的一部分,如果作为文件名的前缀的话,那么这个文件为隐藏文件,不被ls列出。

. .作为目录名的一部分,那么.表达的是当前目录,".."表示上一级目录。

.命令经常作为一个文件移动命令的目的地

, 逗号连接了一系列的算术操作,虽然里边所有内容都被运行了,但只有最后一项被返回。

例:

1. let "t2 = ((a = 9, 15/3))" # Set "a = 9" and "t2 = 15/3"

` 后置引用,命令替换

: 空命令,等价于"NOP", 也可被认为与shell的内建命令(true)作用相同

在if/then中的占位符;

在一个二元命令中提供一个占位符;例: 1 :${username=`whoami`} # 如果没有:的话,将输出一个错误

使用"参数替换"来评估字符串变量;

"变量扩展/子串替换",在和>重定向操作符结合使用时,把文件截断到0长度,没有修改它的权限,如果文件不存在,则创建它;

在和>>重定向操作符结合使用时,不会对文件产生任何影响,若文件不存在,则创建它;

! 取反操作符

** 幂运算

${} 参数替换

$*,S@ 位置参数

$? 退出状态变量。$?保存一个命令,一个函数或者脚本本身的退出状态。

$$ 进程ID变量,这个变量保存运行脚本的进程ID

& 后台运行命令,一个命令后面跟&,将表示在后台运行

可能还有很多符号,以后慢慢补充,下一篇写参数和变量的介绍~(To be continue...)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: