0

我正在尝试设置一个脚本来构建期望命令,以便根据我从其他地方提取的数据与该脚本内联运行。

我需要输出看起来像这样

send "get filename1.out.dat.pgp\n"
expect "sftp>"
send "get filename2.out.dat.pgp\n"
expect "sftp>"

我正在使用以下代码

while read filel
do
    echo 'send "get '${filel}'\n"' >> $ExpectCMMDSGET
    echo 'expect "sftp>"' >> $ExpectCMMDSGET
done < "$DirList"

但是当我把文件找出来时,我得到了

\n"d "get filename1.out.dat.pgp
expect "sftp>"
\n"d "get filename2.out.dat.pgp
expect "sftp>"

当我在 VI 中查看时,我得到

send "get filename1.out.dat.pgp^M\n"
expect "sftp>"
send "get filename2.out.dat.pgp^M\n"
expect "sftp>"

在使用之前创建文件后,我尝试使用 sed 删除 ^M 但它不起作用。

有什么建议么

4

1 回答 1

2

听起来像是"$DirList"包含回车。您可以使用sed -i "s/\r//g" file从文件中删除它们,最好是从您的原始输入中删除,也可以从您创建的文件中删除它们。

于 2013-07-10T19:34:39.867 回答