我正在尝试设置一个脚本来构建expect命令,以便根据我从其他地方提取的数据与该脚本内联运行。
我需要输出看起来像这样
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但它无法正常工作。
任何建议
答案 0 :(得分:2)
听起来"$DirList"
包含回车符。您可以使用sed -i "s/\r//g" file
从文件中删除它们,最好是从原始输入中删除它们,但也可以从创建的文件中删除它们。