标准输入(stdin):默认指向键盘的输入,可以通过标准输入重定向<,让标准输入指向文件输入
标准输出(stdout) :指命令产生的正常的输出,如echo aaa,标准输出默认指向终端显示器,可以通过输出重定向>,让标准输出重定向到文件
标准错误输出(stderr):指命令产生的错误信息的输出,如执行了不存在的命令t,标准错误输出也默认指向终端显示器,同样可以通过输出重定向>,让标准错误输出重定向到文件
首选写一个shell脚本:
#!/bin/sh
t //t命令不存在,会产生标准错误输出
date //会产生标准输出
[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh
/var/www/pyxis2/system/fortest/test1.sh: line 3: t: コマンドが見つかりません //标准错误输出显示到显示器
2019年 1月 18日 金曜日 18:43:37 JST //标准输出显示到显示器
[vagrant@vmp2-local-dva01 ~]$
[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh > testlog
/var/www/pyxis2/system/fortest/test1.sh: line 3: t: コマンドが見つかりません //标准错误输出未重定向,错误信息默认显示到显示器
[vagrant@vmp2-local-dva01 ~]$ cat testlog //标准输出重定向到testlog文件,所以标准输出写入到testlog文件,而没有显示到显示器
2019年 1月 18日 金曜日 18:50:22 JST
[vagrant@vmp2-local-dva01 ~]$
command >file 就相当于 command 1>file
3. 标准输出不重定向,标准错误输出重定向到testlog
[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh 2> testlog
2019年 1月 18日 金曜日 18:58:20 JST //标准输出未重定向,标准输出默认输出到显示器
[vagrant@vmp2-local-dva01 ~]$ cat testlog //标准错误输出重定向到testlog文件,所以错误信息写入到testlog文件,而没有在显示器显示
/var/www/pyxis2/system/fortest/test1.sh: line 3: t: コマンドが見つかりません
[vagrant@vmp2-local-dva01 ~]$
[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh >testlog1 2>testlog2
# 等价于:sh /var/www/pyxis2/system/fortest/test1.sh 1>testlog1 2>testlog2
[vagrant@vmp2-local-dva01 ~]$ cat testlog1
2019年 1月 18日 金曜日 19:04:32 JST
[vagrant@vmp2-local-dva01 ~]$ cat testlog2
/var/www/pyxis2/system/fortest/test1.sh: line 3: t: コマンドが見つかりません
[vagrant@vmp2-local-dva01 ~]$
[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh >testlog 2>&1
[vagrant@vmp2-local-dva01 ~]$ cat testlog
/var/www/pyxis2/system/fortest/test1.sh: line 3: t: コマンドが見つかりません
2019年 1月 18日 金曜日 19:06:45 JST
[vagrant@vmp2-local-dva01 ~]$
[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh 2>testlog 1>&2
[vagrant@vmp2-local-dva01 ~]$ cat testlog
/var/www/pyxis2/system/fortest/test1.sh: line 3: t: コマンドが見つかりません
2019年 1月 18日 金曜日 19:08:29 JST
[vagrant@vmp2-local-dva01 ~]$
[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh 1>testlog 2>testlog
[vagrant@vmp2-local-dva01 ~]$ cat testlog
2019年 1月 18日 金曜日 19:10:17 JST
ne 3: t: コマンドが見つかりません //输出不完全
[vagrant@vmp2-local-dva01 ~]$