Heim Datenbank MySQL-Tutorial shell 编程之2>&1

shell 编程之2>&1

Jun 07, 2016 pm 03:20 PM
amp shell 编程 脚本

经常可以在一些脚本,尤其是在crontab调用时发现如下形式的命令调用 /tmp/test.sh /tmp/test.log 21 前半部分/tmp/test.sh /tmp/test.log很容易理解,那么后面的21是怎么回事呢? 要解释这个问题,还是得提到文件重定向。我们知道和是文件重定向符。那么1和2

经常可以在一些脚本,尤其是在crontab调用时发现如下形式的命令调用

/tmp/test.sh > /tmp/test.log 2>&1

前半部分/tmp/test.sh > /tmp/test.log很容易理解,那么后面的2>&1是怎么回事呢?

要解释这个问题,还是得提到文件重定向。我们知道>和&1的意思就是将标准错误也输出到标准输出当中。

下面通过一个例子来展示2>&1有什么作用:

$ cat test.sh
t
date

test.sh中包含两个命令,其中t是一个不存在的命令,执行会报错,默认情况下,错误会输出到stderr。date则能正确执行,并且输出时间信息,默认输出到stdout

./test.sh > test1.log
./test.sh: line 1: t: command not found

$ cat test1.log
Tue Oct 9 20:51:50 CST 2007

可以看到,date的执行结果被重定向到log文件中了,而t无法执行的错误则只打印在屏幕上。

$ ./test.sh > test2.log 2>&1

$ cat test2.log
./test.sh: line 1: t: command not found
Tue Oct 9 20:53:44 CST 2007

这次,stderr和stdout的内容都被重定向到log文件中了。

实际上, > 就相当于 1> 也就是重定向标准输出,不包括标准错误。通过2>&1,就将标准错误重定向到标准输出了,那么再使用>重定向就会将标准输出和标准错误信息一同重定向了。如果只想重定向标准错误到文件中,则可以使用2> file

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Entfernen Sie doppelte Werte mithilfe regulärer Ausdrücke aus dem PHP-Array Entfernen Sie doppelte Werte mithilfe regulärer Ausdrücke aus dem PHP-Array Apr 26, 2024 pm 04:33 PM

Entfernen Sie doppelte Werte mithilfe regulärer Ausdrücke aus dem PHP-Array

Wozu dient das Programmieren und welchen Nutzen hat es, es zu lernen? Wozu dient das Programmieren und welchen Nutzen hat es, es zu lernen? Apr 28, 2024 pm 01:34 PM

Wozu dient das Programmieren und welchen Nutzen hat es, es zu lernen?

Erstellen Sie browserbasierte Anwendungen mit Golang Erstellen Sie browserbasierte Anwendungen mit Golang Apr 08, 2024 am 09:24 AM

Erstellen Sie browserbasierte Anwendungen mit Golang

Der Unterschied zwischen PHP-Funktionen und Shell-Funktionen Der Unterschied zwischen PHP-Funktionen und Shell-Funktionen Apr 24, 2024 pm 06:39 PM

Der Unterschied zwischen PHP-Funktionen und Shell-Funktionen

Der Schlüssel zum Programmieren: Die Leistungsfähigkeit von Python für Anfänger freischalten Der Schlüssel zum Programmieren: Die Leistungsfähigkeit von Python für Anfänger freischalten Oct 11, 2024 pm 12:17 PM

Der Schlüssel zum Programmieren: Die Leistungsfähigkeit von Python für Anfänger freischalten

Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung Oct 11, 2024 pm 06:30 PM

Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung

Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Oct 13, 2024 pm 01:32 PM

Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger

Problemlösung mit Python: Erschließen Sie leistungsstarke Lösungen als Programmieranfänger Problemlösung mit Python: Erschließen Sie leistungsstarke Lösungen als Programmieranfänger Oct 11, 2024 pm 08:58 PM

Problemlösung mit Python: Erschließen Sie leistungsstarke Lösungen als Programmieranfänger

See all articles