shell 数据流重定向操作符总结
2015-07-24 15:53
295 查看
最近看了鸟哥私房菜关于shell数据流重定向的内容,总结一下。
2.标准输出(stdout):代码为1,符号:>或者>>
3.标准错误输出(stderr):代码为2,符号:2>或者2>>
标准输入可以使用文件或其他输入替换手动输入
双箭头:当指定的文件不存在时,创建新文件写入数据;当文件存在时,在原件内容的最后追加写入数据。
例子:/usr/bin/mailx -r "$MAIL_FROM" -s "$MAIL_SUBJECT. " "$MAIL_TO" <$LOG/activity.log (将$LOG/activity.log文件的内容写入到邮件内容中)
双箭头:结束输入
两个EOF9包含的部分即为连接数据库的输入。首先密码登录,登录成功之后,进行一些数据库操作。
grep "hehe" file.log > one.log 2>&1 (正确,首先stdin重定向到one.log,然后使用2>&1表示stderr重定向至stdin,stderr在stdin之后输入到one.log中)
grep "hehe" file.log &> one.log (另一种正确写法)
操作符:
1.标准输入(stdin):代码为0,符号:< 或者<<2.标准输出(stdout):代码为1,符号:>或者>>
3.标准错误输出(stderr):代码为2,符号:2>或者2>>
作用:
标准输出和标准错误输出可以将内容重定向输出到指定的设备(如打印机)或文件中标准输入可以使用文件或其他输入替换手动输入
单箭头和双箭头的区别:
对于输出:
单箭头:当指定的文件不存在时,创建新文件写入数据;当文件存在时,清空原文件的内容写入数据。双箭头:当指定的文件不存在时,创建新文件写入数据;当文件存在时,在原件内容的最后追加写入数据。
对于输入:
单箭头:将文件或其他输入作为标准输入。例子:/usr/bin/mailx -r "$MAIL_FROM" -s "$MAIL_SUBJECT. " "$MAIL_TO" <$LOG/activity.log (将$LOG/activity.log文件的内容写入到邮件内容中)
双箭头:结束输入
ISQL="isql -U$LOGIN -S$SERVER -w 600" $ISQL << EOF9 $PASSWD select * from tempdb..tmp_miss_bin drop table tempdb..tmp_miss_bin go EOF9上面代码表示首先ISQL代表连接数据库,使用<< ,然后接上任意合法的符号(这里使用EOF9)表示输入开始,下面遇到EOF9则表示输入结束。
两个EOF9包含的部分即为连接数据库的输入。首先密码登录,登录成功之后,进行一些数据库操作。
将标准输出和错误输出重定向到一个文件上:
grep "hehe" file.log > one.log 2>one.log(这样做stdin和stderr能输出到one.log,但是因为同时输入,可能会造成次序的混乱)grep "hehe" file.log > one.log 2>&1 (正确,首先stdin重定向到one.log,然后使用2>&1表示stderr重定向至stdin,stderr在stdin之后输入到one.log中)
grep "hehe" file.log &> one.log (另一种正确写法)
相关文章推荐
- 一个程序演示所有的shell编程知识
- 我的bashrc - PS1
- shell脚本中一些特殊符号
- 使用shell编程实现删除指定文件夹中可执行文件
- ubuntu中用户使用的shell如何指定
- Shell-Scp自动输入密码
- QProcess执行带管道的shell命令
- shell编程笔记
- shell中临时使用其他用户执行命令
- powershell 编写event log
- Bash shell下命令换行输入
- Microsoft.Windows.TimedPowerShell.DiscoveryProvider 的介绍
- shell脚本中一些特殊符号
- shell脚本-----按行读取文件
- linux shell 数组建立及使用技巧
- shell,linux
- Linux Shell脚本面试25问
- 自动登录ssh的shell脚本
- shell 脚本调试工具
- shell 脚本调试(使用shell的执行选项)