gpt4 book ai didi

linux - 我试图在脚本中按 Ctrl D 并且我打破了它?

转载 作者:行者123 更新时间:2023-12-03 09:58:48 24 4
gpt4 key购买 nike

我编写了一个带有无限 while 循环的简单脚本来测试某些内容。这是脚本:

#!/bin/bash

while true; do
echo -n "Give a number: "; read number
done

然后运行我的脚本,它仍在运行,我按下了 Ctrl+D,它坏了!
这是输出:
user@DESKTOP:~$ ./test.sh
Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: Give a number: ^C

我怎样才能防止这种情况?谢谢...

最佳答案

您希望在读取失败时跳出循环:

read number || break;

当 read 检测到错误时,它返回非零值,这在 shell 中是“false”。 ||将在左侧看到 false,从而继续评估右侧,但是当 read成功,返回零, ||不会评估正确的,允许循环继续。

关于linux - 我试图在脚本中按 Ctrl D 并且我打破了它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59295143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com