Puncte:0

care este diferența dintre „command.sh > /dev/null 2>&1” și „command.sh 2>&1 >/dev/null”

drapel us

Am multe scripturi shell și python pe crontab-ul meu care se termină fie cu:

command.sh > /dev/null 2>&1

sau

comandă.sh 2>&1 >/dev/null

Știu că:

> este pentru redirecționare

/dev/null este o gaură neagră în care orice date trimise vor fi aruncate

2 este descriptorul de fișier pentru Standard Error

> este pentru redirecționare

& este simbolul pentru descriptorul de fișier (fără el, următorul 1 ar fi considerat un nume de fișier)

1 este descriptorul de fișier pentru Standard Out

Prin urmare command.sh >>/dev/null 2>&1 redirecționează ieșirea programului meu către /dev/null. Includeți atât eroarea standard, cât și ieșirea standard.

ambele au același rezultat și funcționează bine, dar de ce unii folosesc primul tip și unii îl folosesc pe celălalt?

Puncte:1
drapel ng

Comenzile efectuează două redirecționări:

  • > /dev/null redirecționează Standard Output către /dev/null
  • 2>&1 redirecționează Standard Error către Standard Output

După cum ați ghicit corect, efectul global este că atât Ieșirea standard, cât și Eroare standard sunt redirecționate către /dev/null.

Cele două redirecționări sunt ambele menite să fie interpretate de shell, nu de programul propriu-zis numit; astfel sunt atașate la sfârșitul liniei de comandă. Sunt distincte din punct de vedere logic, deși efectele lor sunt cumulative; astfel pot fi specificate în orice ordine pe care o preferați.

TL;DR: cele două comenzi sunt complet echivalente, diferența este pur cosmetică.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.