8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在 Bash 中,循环在第一行之后停止读取

Сергей Солдатов 1月前

50 0

我有以下 shell 脚本。目的是循环遍历目标文件(其路径是脚本的输入参数)的每一行并针对每一行执行操作。现在,它似乎只能工作...

我有以下 shell 脚本。目的是循环遍历目标文件(其路径是脚本的输入参数)的每一行并对每一行执行操作。现在,它似乎只对目标文件的第一行执行操作,并在处理完该行后停止。我的脚本有什么问题吗?

#!/bin/bash
# SCRIPT: do.sh
# PURPOSE: loop thru the targets 

FILENAME=$1
count=0

echo "proceed with $FILENAME"

while read LINE; do
   let count++
   echo "$count $LINE"
   sh ./do_work.sh $LINE
done < $FILENAME

echo "\ntotal $count targets"

在 中 do_work.sh ,我运行了几个 ssh 命令。

帖子版权声明 1、本帖标题:在 Bash 中,循环在第一行之后停止读取
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Сергей Солдатов在本站《bash》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我认为这是比已接受的解决方案更好的解决方案。除了 ssh 之外,还有其他命令会读取 stdin,从而扰乱 while 循环。此解决方案使用不同的文件描述符,允许我保持循环中现有的调用基础结构不变。这使我避免测试与 sshpass 或循环中可能影响 stdin 的其他程序的交互。谢谢!!

返回
作者最近主题: