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