2010-09-26 15 views
6

"-" è una scorciatoia per lo stdout in bash? Se no, cosa significa? Ad esempio,"-" significa stdout in bash?

wget -q -O - $line 

Che ne dici di stdin?

Grazie e saluti!

+1

Per coloro che hanno votato per chiudere: wget e altre utilità sono applicazioni utente, ma in realtà sono utilizzate nella programmazione della shell, che viene discussa in SO. IMHO questo tipo di domanda è al limite tra SO e SU, quindi per me è meglio lasciarli sul sito dove sono aperti. –

risposta

13

Per quanto ne so, bash non è coinvolto nell'utilizzo di dash. È solo una convenzione di molte utilità della riga di comando UNIX accettare - come segnaposto per stdin o stdout quando si inserisce un nome di file di input o di output sulla riga di comando.


Edit: trovato, questo comportamento è specificato nella POSIX Utility Syntax Guidelines, §12.2.13 di Specifiche Il Gruppo base aperta:

per le utilities che utilizzano operandi per rappresentare i file da aprire sia per la lettura o la scrittura, il '- 'l'operando deve essere usato solo per indicare l'input standard (o lo standard output quando è chiaro dal contesto che viene specificato un file di output).
1

Dipende dal programma. Di solito, - significa "invia all'output".

Uso read:

#!/bin/bash 

echo -n "What's your name? " 
read var1 
echo "hello $var1" 
8

- è solo una convenzione usata da wget (e parecchi altri strumenti) per indicare l'uscita deve essere inviato a stdout. Non fa parte di bash, ma è un caso speciale trattato dal comando stesso (alcuni comandi finiranno per creare un file "-" se si presume che sia così). È possibile sostituirlo con /dev/stdout (e, in genere, è possibile utilizzare /dev/stdin come file di input).

+1

Come altri hanno già detto, anche "' -' "viene usato a volte per indicare '/ dev/stdin' quando invece il parametro si aspetta un input. – Bruno

2

- non è speciale in bash, è semplicemente indicato come parametro per il programma. Quindi dipende dal programma come interpreta quello -.

Comunemente indica che stdin o stdout dovrebbero essere utilizzati, a seconda del contesto.

Problemi correlati