command1 && command2和 command1 ! command2
时间: 2023-08-02 12:09:28 浏览: 56
`command1 && command2` 表示当 `command1` 执行成功(返回状态码为 0)时,才会执行 `command2`。
`command1 ! command2` 是错误重定向操作符,它表示将 `command2` 的标准错误输出重定向到标准输出。如果 `command2` 执行失败(返回状态码非 0),则整个命令的返回状态码为 0,否则为非 0。这个操作符通常用于在多个命令之间进行异常处理和错误日志记录。
相关问题
$ command > file 2>&1
这个命令用于将标准输出和标准错误输出都重定向到同一个文件。具体地说,`command` 是要执行的命令,`>` 是重定向操作符,`file` 是要将输出重定向到的文件名。而 `2>&1` 则表示将标准错误输出(文件描述符2)重定向到标准输出(文件描述符1)。
简单来说,这个命令会将 `command` 执行的结果和错误信息都写入到 `file` 文件中。如果 `file` 已经存在,它将被覆盖;如果不存在,则会创建一个新文件。
$command > outfile 2> &1和$command 2>&1 > outfile 的区别
这两个命令的区别在于重定向的顺序不同。
"$command > outfile 2>&1"的意思是将标准输出重定向到outfile文件中,然后将标准错误输出重定向到标准输出,也就是也输出到outfile文件中。这样,标准输出和标准错误输出都被重定向到了同一个文件中。
"$command 2>&1 > outfile"的意思是将标准错误输出重定向到标准输出,然后将标准输出重定向到outfile文件中。这样,标准错误输出被重定向到了标准输出,而标准输出又被重定向到了outfile文件中。
因此,这两个命令的区别在于重定向的顺序不同,导致输出的结果也不同。
举个例子,假设command命令同时输出了标准输出和标准错误输出,那么:
"$command > outfile 2>&1"会将标准输出和标准错误输出都输出到outfile文件中。
"$command 2>&1 > outfile"会将标准错误输出和标准输出都输出到屏幕上,而不是输出到outfile文件中。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)