2016-09-05 3 views
0

J'essaie d'écrire un script shell court qui me permet d'entrer un tas de nombres, chacun suivi de ENTER, puis d'utiliser CTRL + D pour arrêter de prendre des entrées et d'imprimer la somme des nombres entrés.Comment utiliser CTRL + D pour terminer l'entrée?

Le résultat que je cherche est quelque chose comme ceci:

sum.sh

1 [ENTRER]

5 [ENTRER]

8 [ENTRER]

[CTRL + D]

J'ai une vague idée que je peux le faire en utilisant lire et keycodes, mais je n'ai pas été en mesure de comprendre.

Répondre

3

Vous pouvez utiliser read -r VARNAME pour que, par exemple .:

#!/bin/bash 

sum=0 
while read -r n; do 
    ((sum += n)) 
done 
echo "$sum" 
+0

* VARNAME * est en option ('n' dans votre exemple). 'REPLY' est la variable par défaut. – cdarke