如何用CTRL+D结束输入?

How to use CTRL+D to end input?

我正在尝试编写一个简短的 shell 脚本,让我输入一堆数字,每个数字后跟 ENTER,然后使用 CTRL+D 停止接受输入并打印数字的总和输入数字。

我要找的结果是这样的:

sum.sh

1 [ENTER]

5 [ENTER]

8 [ENTER]

[CTRL+D]

14

我有一个模糊的想法,我可以使用 read 和键码来做到这一点,但我一直没弄明白。

您可以使用 read -r VARNAME,例如:

#!/bin/bash

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