【文件名置换】
* 匹配文件名中的任何字符串,包括空字符串
? 匹配文件名中的任何单个字符
[...] 匹配[ ] 中包含的任何字符
[! ...] 匹配[ ] 中非感叹号!之后的字符
【Shell 输入与输出】
1. echo
格式 echo string
参数:
\c 不换行
\t tab键
\f 进纸
\n 换行
如果要上述转义字符生效,需要加参数 -e
例如 echo -e "This will not change to new line \c"
2. read
read用于读取用户输入,给某个变量赋值
$read name // 准备用户输入
linus
$echo $name // 打印刚才用户为name输入的值
linus
给多个变量赋值
$read name1 name2 name3
linua linub linuc linud linue
注意:上面的命令会让name1=linua name2=linub name3=linuc linud linue
即,对于超过变量个数的输入,shell会将超过的部分全部赋值给最后一个变量
3. cat
cat用于显示文件内容,还可以将几个文件进行拼接
例如 cat file1 file2 file3 > file123
4. tee
tee命令把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中。
例如
who | tee who.out // 在屏幕上显示who的结果,同时将结果保存在who.out文件中
5. 标准输入,输出和错误输出
----------------------------------------------------------------------------------------------------------------------------------
文件 文件描述符
----------------------------------------------------------------------------------------------------------------------------------
输入文件 --- 标准输入 0
输出文件 --- 标准输出 1
错误输出文件 --- 标准错误 2
-----------------------------------------------------------------------------------------------------------------------------------
command > filename 把标准输出重定向到一个新文件中
command >> filename 把标准输出重定向到一个文件中(追加)
command 1 > fielname 把标准输出重定向到一个文件中
command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中
command 2 > filename 把标准错误重定向到一个文件中
command 2 >> filename 把标准输出重定向到一个文件中(追加)
command >> filename 2>&1 把标准输出和标准错误一起重定向到一个文件中 (追加)
command < filename >filename2 command命令以filename文件作为标准输入,以filename2 文件作为标准输出
command < filename command命令以filename文件作为标准输入
command << delimiter 从标准输入中读入,直至遇到delimiter分界符
command <&m 把文件描述符m作为标准输入
command >&m 把标准输出重定向到文件描述符m中
command <&- 关闭标准输入