脚本永远不会完成最后一行

j0h*_*j0h 1 command-line bash scripts

我写这个脚本是为了从网络摄像头服务器上获取一些文件。这些文件都已下载,但是当我运行脚本时,即使在下载文件之后,最后一行也永远不会结束。所以,我想知道为什么。为什么这个脚本永远不会终止?该wget命令得到了最后一个文件,但并没有退出。

#!/bin/bash 
x="127.0.0.1"  
z=0
while read line
do z=$(($z+1));
echo $x${line//};
wget $x${line//};
done < "/home/jay/Desktop/PINGS"
read
Run Code Online (Sandbox Code Playgroud)

那么为什么这个脚本不终止呢?

hee*_*ayl 10

最后一行只包含read.

阅读help的页面read,从help read

Read a line from the standard input and split it into fields.
Run Code Online (Sandbox Code Playgroud)

因此,除非您read通过 STDIN提供输入,否则它将被无限期阻止。

在脚本中,read通常用于从文件中读取行或获取用户输入(如您的情况)。