Cosa sono queste linee di output extra in bash?


9

È per qualche tempo che queste linee possono essere viste dopo aver eseguito un comando (in modo casuale):

[1]-  Done                    wget -c http://downloads.sourceforge.net/project/zorin-os/9/zorin-os-9-core-32.iso?r=http%3A%2F%2Fzorinos.com%2Fdownload9.html
[2]+  Done                    ts=1460659842

La prima riga è il comando stesso e non succede sempre. Di tanto in tanto un'app della riga di comando si arresta senza tornare alla riga di comando, finché non premo Invio; che mostra queste linee.

Il mio sistema non si è comportato così fino a una settimana fa. È un problema?

Risposte:


20

Probabilmente hai emesso un comando come questo:

wget -c http://downloads.sourceforge.net/project/zorin-os/9/zorin-os-9-core-32.iso?r=http%3A%2F%2Fzorinos.com%2Fdownload9.html&ts=1460659842&something-else

Tale comando contiene il carattere speciale &, che viene utilizzato per eseguire più processi contemporaneamente . Tale comando viene interpretato come tre (o più) comandi:

# First command (the one that you see after [1]):
wget -c http://downloads.sourceforge.net/project/zorin-os/9/zorin-os-9-core-32.iso?r=http%3A%2F%2Fzorinos.com%2Fdownload9.html
# Second command (the one that you see after [2]):
ts=1460659842
# Third command (the one which output should be above the "Done" lines):
something-else

Ecco un esempio che può aiutarti a capire meglio:

# Here I'm launching three 'echo' commands, the first two in background, the third in foreground
andrea@andrea-laptop:~$ echo first & echo second & echo third
[1] 5033    # This is bash telling me that the first process was started with job number 1 and PID 5033
first       # This is the output from the first process
[2] 5034    # This is bash telling me that the second process was started with job number 2 and PID 5034
third       # This is the output from the third process
second      # This is the output from the second process
andrea@andrea-laptop:~$ 
[1]-  Done                    echo first    # This is bash telling me that the first background job has quit
[2]+  Done                    echo second   # This is bash telling me that the second background job has quit

Dovresti citare correttamente gli URL per evitare questo e altri effetti negativi:

wget -c 'http://downloads.sourceforge.net/project/zorin-os/9/zorin-os-9-core-32.iso?r=http%3A%2F%2Fzorinos.com%2Fdownload9.html&ts=1460659842&something-else'

6
Ancora un altro motivo per cui non dovresti mai copiare ciecamente i comandi del terminale ... Qualcuno potrebbe fare un urlo someurl.com/index.php&malicious-command-here e la gente semplicemente lo eseguirà e romperebbe il loro sistema.
Nzall,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.