数据流导向

数据流重导向

1、standard output与standard error output
  1. 标准输入        (stdin): 代码为0, 使用<或者<<
  2. 标准输出        (stdout) 代码为 1 ,使用 > 或 >> 
  3. 标准错误输出      (stderr )  代码为 2 ,使用 2> 或 2>> ;
 
 
 
 
 
 
 
 
 
 
 
 
1
# 例子标准输出,导出到文件
2
[dai@workPC ~]$ ll / > ~/rootfile
3

4
[dai@workPC ~]$ cat rootfile
5
total 80
6
lrwxrwxrwx.   1 root root     7 Mar  7  2019 bin -> usr/bin
7
dr-xr-xr-x.   6 root root  4096 Dec 31 19:36 boot
8
drwxr-xr-x    2 root root  4096 Mar 12  2019 data
9
drwxr-xr-x   19 root root  3000 Oct 13 08:27 dev
10
drwxr-xr-x. 107 root root 12288 Dec 31 19:37 etc
11
drwxr-xr-x.   4 root root  4096 Dec  1 23:54 home
12
lrwxrwxrwx.   1 root root     7 Mar  7  2019 lib -> usr/lib
13
lrwxrwxrwx.   1 root root     9 Mar  7  2019 lib64 -> usr/lib64
14
drwx------.   2 root root 16384 Mar  7  2019 lost+found
15
drwxr-xr-x.   2 root root  4096 Apr 11  2018 media
16
drwxr-xr-x.   2 root root  4096 Apr 11  2018 mnt
17
drwxr-xr-x.  11 root root  4096 Dec 30 21:16 opt
18
dr-xr-xr-x  103 root root     0 Oct 13 08:27 proc
19
dr-xr-x---.  10 root root  4096 Jan  1 12:05 root
20
drwxr-xr-x   34 root root  1160 Dec 31 19:37 run
21
lrwxrwxrwx.   1 root root     8 Mar  7  2019 sbin -> usr/sbin
22
drwxr-xr-x.   2 root root  4096 Apr 11  2018 srv
23
dr-xr-xr-x   13 root root     0 Jan  1 20:01 sys
24
drwxrwxrwt.  16 root root 12288 Jan  1 12:53 tmp
25
drwxr-xr-x.  13 root root  4096 Mar  7  2019 usr
26
drwxr-xr-x.  19 root root  4096 Mar  7  2019 var
27

28
# 标准错误输入,导出到黑洞
29
# /dev/null  垃圾桶黑洞装置与特殊写法
30

31
[dai@workPC /]$ cd root/
32
-bash: cd: root/: Permission denied
33

34
[dai@workPC home]$ cd root/ 2> /home/dai/error1.log
35
[dai@workPC ~]$ cat error1.log
36
-bash: cd: root/: No such file or directory
37

38

39
# /dev/null 垃圾桶黑洞装置与特殊写法
40
[dai@workPC /]$ cd root/ 2> /dev/null        
41
[dai@workPC /]$
42

43
# 将错误和正确信息一起导出文件中, 比如下面的这个例子,如果权限不够的时候,屏幕会输出错误信息
44
# 这个时候将正确和错误信息都输出到 file_name 这个文件
45
 find /home -name .bashrc > file_name 2>&1
46

 
 
2、standard Input:< 和<<

 
 
 
 
 
 
 
 
 
 
 
1
# 引子
2
[dai@workPC ~]$ cat > rootfile
3
wqe
4
we2
5
^C
6
[dai@workPC ~]$ cat rootfile
7
wqe
8
we2
9
[dai@workPC ~]$
10

11
# 下面就是input的用法
12
# 将一个文件作为另一个文件的输入
13
[dai@workPC ~]$ cat > rootfile  < ~/.bashrc   # 将.bashrc 文件中的内容导入 rootfile
14

15
# 使用关键字给文件插入文字
16
[dai@workPC ~]$ cat > rootfile << eof
17
> This is a test
18
> OK now stop
19
> eof
20
[dai@workPC ~]$ cat rootfile
21
This is a test
22
OK now stop
23

 
 
3、命令执行的判断依据
  • cmd;cmd (不考虑指令相关性的连续执行下去)

 
 
 
 
 
 
 
 
 
 
 
1
[dai@workPC ~]$ echo hello world;echo dai;echo haolong
2

3
# 不考虑指令是否执行成功
 
 
 
  • &&

 
 
 
 
 
 
 
 
 
 
 
1
cmd1&&cmd2
2
# 如果cmd1 正确执行,再执行cmd2;如果cmd1执行失败,则不再执行cmd2
 
 
 
  • ||

 
 
 
 
 
 
 
 
 
 
 
1
cmd1||cmd2
2
# 如果cmd1 正确执行,不再执行cmd2;如果cmd1执行失败,再执行cmd2
 
 
 
Nobody knows it better than me.
原文地址:https://www.cnblogs.com/dadaizi/p/13060421.html