SHELL学习笔录
前段时间学了学shell,做了些笔记,希望对好学者有所帮助,如下:
1.echo "hello" 输出hello,自动打印换行符
echo "hello /c" 然echo不打印换行符
echo * 显示所有文件,不包括隐藏文件
echo .* 显示隐藏文件
2.printf format-string[arguments] 几乎实现了C中printf的功能,它不像echo自动换行
3.重定向
< 改变标准输入 program < file 将program的标准输入改为file
> 改变标准输出 program > file 将program的标准输出改为file
目标文件file不存在时,会新建file,若存在则会覆盖
program >> file 不覆盖已有file,而是把内容追加在file结尾处
4.参数使用: www.zhishiwu.com
$n 第n个参数(和C中的宏类似,$n只是简单的替代, $n$m可组合为一个参数:)
变量赋值"="左右不能有空格
5.通配符:
* 匹配多个字符
? 匹配一个字符
[charset] 匹配charset中的字符,如[0123456789]匹配一个数字0123456789,还可写成[0-9]
[!charset] 取charset的补集作为匹配集合
6.变量替换:
${parameter:-word} 若parameter为空或未设置,则用word代替parameter进行替换,parameter值不变
${parameter:=word} 若parameter为空或未设置,则parameter设为值word
${parameter:?message} 若parameter为空或未设置,则把message作为标准错误输出
${parameter:+word} 若parameter设置了,则用word代替parameter进行替换,parameter值不变
7.引用:
关闭一个字符的特殊意义
/
''
""
8. if list1 ————————————>list1退出代码为0时为真
then list2
elif list3
then list4
else
then list5
fi
test expression = [expression] expression为test可理解的表达式
test可理解的表达式:
-文件测试:检查文件是否满足某种特殊规则
test option file option如下图