Linux里的/dev/null和2>&1和基本符合

在一些shell经常中见到>/dev/null>/dev/null 2>&1

# 这里有>,/dev.null,2>&1,最后一个&
0 0 * * * /data/test.sh > /dev/null 2>&1 &

几个基本符号及其含义

/dev/null 表示空设备文件
> 代表重定向到
0 表示stdin标准输入
1 表示stdout标准输出
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的标准错误输出重定向等同于1标准输出
最后一个&表示在后台中运行,后面会有解释

测试文件test.sh

#!/bin/sh
mm
date
# 标准执行,错误与输出都显示在终端
[dev ~]$ ./test.sh 
./test.sh: line 2: mm: command not found
Thu Jul 26 14:50:08 CST 2018

/dev/null

# 禁止标准输出到终端,只显示了标准错误
[dev ~]$ ./test.sh > /dev/null
./test.sh: line 2: mm: command not found
[dev ~]$
# 禁止标准错误到终端,显示了标准输出
[dev ~]$ ./test.sh 2> /dev/null
Thu Jul 26 14:53:33 CST 2018
[dev ~]$
# 禁止标准错误和标准输出都显示在终端,此时无任何输出
[dev ~]$ ./test.sh > /dev/null 2>&1
[dev ~]$

>重定向

>表示覆盖写,>>表示追加写

# 12345刚刚打印到终端,后重定向写入m.text
[dev ~]$ echo 12345
12345
[dev ~]$ echo 12345 > m.text
[dev ~]$ ls
 m.text  test.sh
[dev ~]$
# 每次执行echo,>都会覆盖上次内容,>>追加内容
[dev ~]$ echo 12345 > m.text
[dev ~]$ cat m.text 
12345
[dev ~]$ echo 12345 > m.text
[dev ~]$ cat m.text 
12345
[dev ~]$ echo 12345 >> m.text
[dev ~]$ cat m.text 
12345
12345

基本符号

|| 逻辑符号
这个会时常看到,代表 or 逻辑的符号。

&& 逻辑符号
这个也会常看到,代表 and 逻辑的符号。

& 后台工作
单一个& 符号,且放在完整指令列的最后端,即表示将该指令列放入后台中工作。

https://blog.csdn.net/loryliu/article/details/52440192
https://www.cnblogs.com/lidabo/p/4323979.html

猜你喜欢

转载自blog.csdn.net/qq_41620002/article/details/81220168
今日推荐