为什么echo "Line $line"的附加“ Line”没有添加到for循环内的所有文件中?

#!/bin/bash

INPUT=targets.csv
IFS=","

[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read target user password path
do
    result=$(sshpass -p "$password" ssh -n "$user"@"$target" ls "$path"*file* 2>/dev/null)

    if [ $? -ne 0 ]
    then
            echo "No Heap dumps detected."
    else
            echo "Found a Heap dump! Possible OOM issue detected"
            for line in $result
            do
                    echo "Line $line"
            done
    fi

done < $INPUT

.csv文件内容..

rob@laptop:~/scripts$ cat targets.csv 
server.com,root,passw0rd,/root/

脚本输出..

rob@laptop:~/scripts$ ./checkForHeapdump.sh 
Found a Heap dump! Possible OOM issue detected
Line file1.txt
file2.txt

===============>>#1 票数:0 已采纳

该声明:

for line in $result

$result执行单词拆分,以获取应将$line设置为的每个元素。 单词拆分使用$IFS的定界符。 在脚本早些时候将此项设置为刚, 因此,此循环将遍历$result中用逗号分隔的数据。 由于其中没有任何逗号,因此它只是一个元素。

如果要按行拆分,请执行以下操作:

IFS="
"
for line in $result

  ask by bobbyrne01 translate from so

未解决问题?本站智能推荐: