gpt4 book ai didi

bash - while循环后的左尖括号在bash中意味着什么?

转载 作者:太空宇宙 更新时间:2023-11-04 12:16:49 24 4
gpt4 key购买 nike

以下内容来自 RHEL 上的/etc/init.d/functions。我想弄清楚 __pids_var_run() 是什么当我遇到这个 while 循环时,函数会执行。

            while : ; do
read line
[ -z "$line" ] && break
for p in $line ; do
if [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] ; then
if [ -n "$binary" ] ; then
local b=$(readlink /proc/$p/exe | sed -e 's/\s*(deleted)$//')
[ "$b" != "$binary" ] && continue
fi
pid="$pid $p"
fi
done
done < "$pid_file"

谁能解释一下while : ; do ; ... done < "$pid_file"做?更具体地说,done 之后的最后一部分,因为它的其余部分或多或少是有道理的。

最佳答案

这意味着循环中任何从 stdin 读取内容的命令将从给定文件(而不是键盘,例如)读取。

特别是在这种情况下,循环使用 read line 从 stdin 读取一行,因此当您从 $pidfile 重定向时,它有效地读取文件行行。

要进一步了解重定向,这里有一个 Illustrated redirection tutorial this Bash Guide推荐的通过 LhunathGreyCat .

关于bash - while循环后的左尖括号在bash中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47210184/

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