读书笔记:
1.“使用保留字”:Shell 有一些具有特殊意义的字,例如Shell脚本中,do,done,for 等字用来控制循环操作,if,then,等控制条件操作。保留字随Shell环境的不同而不同。
2.“通配符”: * 匹配任何位置
?匹配单个字符
[ ] 匹配的字符范围或列表 例如:
$ls [a-c]* 将列出以a-c范围内字符开头的所有文件。
$ ls [a,m,t]* 将列出以e,m或t 开头的所有文件。
3.“程序命令”: “输入输出重定向及管道”
">" 重定向输出
"<" 重定向输入
而管道符号,是unix功能强大的一个地方,符号是一条竖线“|”用法:
command 1 | command 2 他的功能是把第一个命令command1 执行的结果作为command2的输入传给command2 例如
$ls -s | sort -nr | pg {pg俺没事出啥功能} 是不是跟sed 那里的pg 意思一样?
该命令是列出当前目录下的所有文件和文件的大小,并把输出送给sort命令作为输入,sort命令按照数字的递减的顺序把ls的输出排序。
4.“维护变量”: Shell可以维护一些变量。变量中存放一些数据供以后使用。用户可以用“=”给量赋值,如:
$lookup=/usr/mydir
该命令建立一个为lookup的变量并给其赋值/usr/mydir,以后用户可以在命令行中使用lookup来代替/usr/mydir,例如:
$echo $lookup
结果显示:/usr/mydir
为了使变量能被子进程使用,可用export命令 例如:
$lookup=/usr/mydir
export lookup
>Shell变量
Shell变量名使用的特殊字符
$# 传送给命令Shell的参数序号
$-在Shell启动或使用set命令时提供选项
$?上一条命令执行后返回的值
$$当前Shell的进程号
$!上一个子进程的进程号
$@ 所有参数,每个都用双括号括起
$* 所有参数,有双括号括起
$n 位置参数值,n表示位置
$0 当前shell名
>产生文件名的特殊字符
“ * ” 匹配所有
“ ? ” 匹配单个字符
“ [ ] ” 匹配字符范围或列表
>数据或程序控制使用的特殊字符
>file 输出重定向到文件中(没有文件则创建,有则覆盖)
>>file 输出重定向到文件中(没有文件则创建,有则追加到文件尾部)
< flie 输入重定向的文件
; 命令分割符
| 管道
& 后台运行
` ` 命令替换,重定向一条命令的输出作为另一命令的参数
*> 对于引用 或逃逸的特殊字符
Shell 的逃逸符是 \
"" 意思描述不清楚 举个例子吧。
' '
转载于:https://blog.51cto.com/mecho/188523