Com executar diverses ordres a Linux

How Run Multiple Commands Linux



Es necessiten diferents tipus d’ordres per executar-se des del terminal a Linux. De vegades, hem d'executar diverses ordres en un moment en què les ordres poden dependre o no de les altres. Executar diverses ordres alhora s'anomena encadenament d'ordres. Es poden utilitzar molts tipus d'operadors per encadenar comandes amb diferents propòsits. En aquest tutorial es mostra com podeu executar dues o més ordres mitjançant els operadors més utilitzats.

L'operador pipe (|) s'utilitza per executar dues o més ordres relacionades alhora. L'entrada de l'ordre següent serà la sortida de l'ordre anterior. Per tant, l’èxit de cada ordre depèn de l’èxit de l’ordre anterior sense cap ordre. A l'ordre següent, la primera ordre, ls esbrinarà la llista de fitxers i carpetes de la ubicació actual i enviarà la sortida com a entrada per a la segona ordre, wc . Imprimirà el nombre total de línies, paraules i caràcters en funció de les dades d'entrada.







$ls -la | wc per sort



Punt i coma (;) Operador

L'operador de punt i coma (;) està acostumat a executar dues o més ordres no relacionades alhora. Això significa que la sortida de cada ordre no depèn d'altres ordres. A l'exemple següent, es combinen tres tipus d'ordres i la fallada de cada ordre no crearà cap efecte sobre la sortida d'altres ordres. La primera ordre imprimirà el contingut d’un fitxer, la segona ordre crearà un directori i la tercera ordre canviarà el directori actual.



$gatmyfile.txt;mkdirnewdir;cdEscriptori





Operador AND lògic (&&)

Les ordres que s'executen amb Logical AND (&&) estan relacionades entre si com l'ordre pipe (|). Per tant, si l'ordre anterior no s'executarà correctament, les ordres següents no funcionaran. A l'exemple següent, dues ordres, mkdir i rmdir combinades pels operadors &&. Per tant, l'ordre mkdir no s'ha pogut executar correctament; llavors l'ordre rmdir no s'executarà. Segons la sortida de l'ordre ls, el directori myDir ja existeix a la ubicació actual. Per tant, la primera ordre no s'executarà i per a aquesta segona ordre tampoc no s'executarà.

$ls
$mkdirmyDir&& rmdirtemp
$ls



Operador lògic OR (||)

L'operador lògic OR (||) és l'oposat a l'operador lògic AND (&&). L'ordre següent s'executarà si l'ordre anterior no s'executa. Tres ordres de cat es combinen amb l'operador OR (||) a l'exemple següent. Quan executeu l'ordre, primer de tot, intentarà mostrar el contingut del fitxer cat.txt. Si no existeix aquest fitxer a la ubicació actual, provarà d'executar l'ordre següent. Segons la sortida, el fitxer bird.txt existeix a la ubicació actual i es mostra el contingut d’aquest fitxer.

$ cat cat.txt || cat dog.txt || gat ocell.txt

Múltiples ordres amb diversos operadors

Podeu utilitzar diversos operadors per executar diverses ordres alhora. A l'exemple següent, es combinen tres ordres amb operadors OR (||) i AND (&&). Després d’executar l’ordre, primer canviarà el directori actual a newdir si existeix el directori. Si aquesta ordre falla, es crearà el directori executant la segona ordre i imprimirà el missatge, es crea el directori. Segons la sortida, el directori newdir no existeix a la ubicació actual. Per tant, es mostrarà el missatge d’error i el directori es crearà més endavant.

$cdnewdir|| mkdirnewdir&& trobo 'directori creat'

Operador de combinació {}

Es poden combinar dues o més ordres mitjançant aquest operador i, si falla l'execució de la primera, la segona no s'executarà. A l'exemple següent, OR, AND i els operadors de combinació s'utilitzen junts. Les primeres ordres comprovaran si el directori temporal existeix o no a la ubicació actual. Si falla la primera ordre, crearà un directori temporal i imprimirà un missatge. L'última ordre mostrarà la llista de directoris actual.

$[ -dtemp] || { mkdirtemp;troboel directori temporal es crea ara .;} && ls

Operador de precedència ()

Podeu utilitzar aquest operador per agrupar les ordres en el moment de l'execució. Aquí, cada grup funcionarà com una única tasca. A l'exemple següent, es defineixen dos grups d'ordres i, si el primer grup no s'executa, s'executarà el segon grup.

$(cdtemp&& ls-a) || (mkdirtemp&& ls)

Conclusió

Aquest tutorial explicava els operadors més utilitzats per executar diverses ordres a Linux. Però hi ha molts altres operadors que existeixen a bash que s’utilitzen per executar dues o més ordres juntes. Es tracta d’ampersand (&), redirecció (, >>), NO lògic (!), Combinació ({}), etc.