shell 中的tee命令的使用:
1.who | tee file.log : 起到把标准输出写到文件里,但是错误输出不能添加
2.who | tee -a file.log : 起到把标准输出追加到文件里,但是错误输出依然不添加 (文件的追加还可以使用: >> 符号)
3.who | tee /dev/console : 把标准输出放到屏幕上
4.使用 \ 可以告诉命令行换行后还有脚本需要执行
输出与输入:
文件描述符: 0 代表标准输入 1 标准输出 2 错误输出
输出到文件:
who > (>>)file.log 标准输出到(追加)文件
who 1> (>>) file.log 标准输出到(追加)文件
who 2> (>>) file.log 错误输出到(追加)文件
who > (>>)file.log 2>&1 标准输出和标准错误输出(追加)到文件
who < filename1.log > filename2.log 以filename1.log为标准输入 以filename2.log 为标准输出
who <&- 关闭标准输入
注意:sort 命令和 > 有空两个空格,否则会被认为标准输入文件,例如:
cat password | awk -F ; '{ print $1 }' | sort > sort.out
ls -l | grep ^d >> file.out :查找目录追加到文件中
sort file.log (sort < file.log):对文件进行排序
mail 用户 < file.log :向用户以邮件的形式发送file.log 里面的内容
grep "df" myfile 2>/dev/null :把错误扔到系统垃圾箱
cat myfile1.log myfile2.log 1>log.out 2>log.out :把标准输出和错误输出分别放到两个文件中
cat nyfile2.lg myfile2.log > log.out 2>&1 :标准输出和标准错误放到一个文件中
使用文件描述符进行输出
#!/bin/sh
# f_desc
exec 4<&0 0< 22.sh
read line1
read line2
read line3
exec 4&>0
echo $line1 2>/dev/null
echo $line2 2>/dev/null
echo $line3 2>/dev/null