在bash中,while循环后的左尖括号是什么意思?
发布时间:2020-12-15 21:55:16 所属栏目:安全 来源:网络整理
导读:以下内容来自RHEL上的/etc/init.d/functions.我试图找出当我遇到这个while循环时__pids_var_run()函数的作用. 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" ] ; t
以下内容来自RHEL上的/etc/init.d/functions.我试图找出当我遇到这个while循环时__pids_var_run()函数的作用.
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" 有人可以解释一下:做……完成< “$pid_file”有吗?更具体地说,完成后的最后一部分,其余部分或多或少是有道理的. 解决方法
这意味着循环中从stdin读取内容的任何命令都将从给定文件(例如,而不是键盘)中读取.
特别是在这种情况下,循环使用读取行从stdin读取单行,因此当您从$pidfile重定向时,它会有效地逐行读取文件. 为了进一步了解重定向,这里是一个Illustrated redirection tutorial,由this Bash Guide到Lhunath和GreyCat推荐. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |