对于任何一条linux 命令执行,它会是这样一个过程:
一个命令执行:
先有一个输入:输入可以从键盘,也可以从文件得到
命令执行完成:成功了,会把成功结果输出到屏幕:standard output默认是屏幕
命令执行有错误:会把错误也输出到屏幕上面:standard error默认也是指的屏幕
默认条件下,输入是终端,标准输出和错误输出也都是终端,可以用重定向来改变这些设置。
重定向符号
> 输出重定向到一个文件或设备 覆盖原来的文件
>! 输出重定向到一个文件或设备 强制覆盖原来的文件
>> 输出重定向到一个文件或设备 追加原来的文件
< 输入重定向到一个程序
标准错误重定向符号
2> 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 b-shell
2>> 将一个标准错误输出重定向到一个文件或设备 追加到原来的文件
2>&1 将一个标准错误输出重定向到标准输出 注释:1 可能就是代表 标准输出
>& 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 c-shell
|& 将一个标准错误 管道 输送 到另一个命令作为输入
自己的例子:
xbwang@xbwang-desktop:~/stanford-segmenter-2016-10-31$ sh segment.sh ctb test.simp.utf8 UTF-8 0 > res
之后就在stanford-segmenter-2016-10-31这个文件夹下生成一个名叫res的文件,并把内容输出到了这个文件里(实际上和python的文件读写类似)