Erwarten Sie den Befehl in der while-Schleife des Shell-Skripts.

Ich habe eine Liste mit Dateinamen in einer Textdatei und muss jede Datei mit dem Befehl scp auf den Server übertragen. Ich lese Dateinamen aus Read.sh und übergebe jeden Dateinamen an transfer.sh script, aber scp führt den Befehl in diesem Übertragungsskript nicht aus. Wenn ich transfer.sh allein mit dem Übergeben von Argumenten funktioniert es gut.

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" [email protected]:/home/user/Desktop/ 
expect "password"
send "123\r"
interact

Ich starte Read.sh einfach als

>./Read.sh

Ausgabe

/home/user/Desktop/file1.txt
spawn scp /home/mbox140/Desktop/test.sh [email protected]:/home/mbox140/Desktop/videos/
[email protected]'s password:

Die nächste Anweisung wird nicht ausgeführt.Bitte schlagen Sie mir eine Lösung vor.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage