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.