gpt4 book ai didi

bash - 在第一行之后停止读取行循环时的Shell脚本

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

我有以下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命令。

最佳答案

问题是do_work.sh运行ssh命令,默认情况下ssh从输入文件stdin中读取。结果,您仅看到处理的第一行,因为ssh占用了文件的其余部分,而while循环终止。

为防止这种情况,请将-n选项传递给ssh命令,以使其从/dev/null而不是stdin中读取。

关于bash - 在第一行之后停止读取行循环时的Shell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55254873/

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