2017-01-10 1 views
1

Mein Skript v.shWie benutze ich das Shell-Schlüsselwort "select", um Parameter per Pipeline zu erhalten?

select f in "[email protected]" ; do 
    echo $f 
done 

v.sh 1 2 3 I Optionen, nachdem der Befehl ausgeführt auswählen können.

echo 1 2 3 | v.sh Nichts anzeigen.

echo 1 2 3 | xargs v.sh Zeigt die Optionen, aber ich kann sie nicht auswählen.

Wie wählt man die Optionen? Danke im Voraus.

+0

Um Sachen von der Standardeingabe zu lesen, verwenden 'read' Schlüsselwort. –

+0

Thx alle! Die beste Antwort ist erschienen. –

Antwort

1

Mit bash:

#!/bin/bash 

if [[ -z $1 ]]; then 
    # no arguments, read from stdin 
    mapfile -t input </dev/stdin 
    exec </dev/tty 
else 
    # use arguments 
    input=("[email protected]") 
fi 

select f in "${input[@]}" ; do 
    echo "$f" 
done 

Beispiel mit stdin:

cut -d : -f 1 /etc/passwd | ./script.sh 

mit Argumenten:

./script.sh 1 2 "3 3" 4 5 
+0

Schön! Du hast es beendet. Danke! –

Verwandte Themen