通过 .sh 文件传递​​ clrsh 命令时,文件行未完全解析

File lines are not parsed completely when passed clrsh command through .sh file

我有一个包含以下内容的 test.txt 文件:

script_initiate.log
script_stop.log

我需要在目标服务器和集群服务器上找到上面列出的 .log 文件的 md5 值。

我写了一个shell脚本。

#!/bin/sh
filename='test.txt'
cat $filename | while read line;do
 clrsh server1 csum -h MD5 $line
done

此代码仅选取 test.txt 文件的第一行。即script_initiate.log。 (对于集群)

用于目标服务器的相同代码读取 test.txt 文件的两行。即 script_initiate.log 和 script_stop.log.

#!/bin/sh
filename='test.txt'
cat $filename | while read line;do
 csum -h MD5 $line
done

为什么会有这样的差异?

对此有任何想法都会有很大帮助。

提前致谢!

clrsh 正在从标准输入读取。 cat $filename第二行重定向到clrsh,while没看到
ssh也有类似的问题,用参数-i可以解决什么问题。