Exécuter attendre de commande à l'intérieur de la boucle while en script shell

J'ai une liste de noms de fichiers dans un fichier texte,besoin de transférer le fichier en utilisant le serveur de commande scp.Je suis à la lecture des noms de fichier de Read.sh et en passant à chaque nom de fichier pour transfer.sh script mais scp n'est pas de l'exécution de la commande dans ce script de transfert.Si je lance transfer.sh seul avec passage args sa fonctionne bien.

List.txt

/home/kittu/file1.txt
/home/kittu/file2.txt
/home/kittu/file3.txt

Read.sh

#!/bin/bash
while read p; do
  echo $p
    ./transfer.sh "$p"
done <List.txt

transfer.sh

#!/usr/bin/expect -f

# get filename from command-line
set f [lindex $argv 0]

spawn scp "$f" user@192.168.4.151:/home/user/Desktop/ 
expect "password"
send "123\r"
interact

Je viens de courir Read.sh comme

>./Read.sh

De sortie:

/home/user/Desktop/file1.txt
spawn scp /home/mbox140/Desktop/test.sh mbox140@192.168.4.151:/home/mbox140/Desktop/videos/
user@192.168.4.151's password:

Ses pas l'exécution de l'instruction suivante.Merci de me suggérer une solution.

avez-vous essayé de lancer le transfer.sh autonome, est ce que ça marche? et dans le transfer.sh la interagissent commande doit jeter erreur, puisque vous tentez de communiquer au processus fermés ( dans ce cas scp )
oui,le transfert de travailler de manière autonome.

OriginalL'auteur Ramakrishna | 2014-09-10