Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何使用CTRL+;D结束输入?_Bash_Shell_Key_Keycode - Fatal编程技术网

Bash 如何使用CTRL+;D结束输入?

Bash 如何使用CTRL+;D结束输入?,bash,shell,key,keycode,Bash,Shell,Key,Keycode,我正在尝试编写一个简短的shell脚本,让我输入一组数字,每个数字后面跟着ENTER,然后使用CTRL+D停止输入并打印输入的数字的总和 我想要的结果是这样的: sum.sh 1[输入] 5[输入] 8[输入] [CTRL+D] 十四, 我有一个模糊的想法,我可以使用read和keycodes来实现这一点,但我还没有弄清楚。您可以使用read-r VARNAME来实现这一点,例如: #!/bin/bash sum=0 while read -r n; do ((sum += n)) d

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

我想要的结果是这样的:

sum.sh

1[输入]

5[输入]

8[输入]

[CTRL+D]

十四,


我有一个模糊的想法,我可以使用read和keycodes来实现这一点,但我还没有弄清楚。

您可以使用
read-r VARNAME
来实现这一点,例如:

#!/bin/bash

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

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

#!/bin/bash

sum=0
while read -r n; do
    ((sum += n))
done
echo "$sum"
VARNAME是可选的(在您的示例中为
n
REPLY
是默认变量。VARNAME是可选的(
n
)<代码>回复是默认变量。