Variable Probleme in SSH

Hey Leute, ich versuche diesen Code auszuführen:

#!/bin/bash

sudo /usr/local/bin/sshpass -p pwd ssh -o stricthostkeychecking=no -p 11022 admin@$1.test.com<<EOI
i=1
while read line
do
 location="sudo sed -n ${i}p /Users/Shared/$1.txt"
 number="sudo sed -n ${i}p /Users/Shared/$2n.txt"
 my_array=("${my_array[i]}" $line)
 sudo cp /Applications/TEPS\ OS\ X\ Share\ Folder/MAIN\ IMAGES\ FOLDER\ ƒ/${location}${number} /Users/Shared/FYP/$number
 sudo sips -Z 256 /Users/Shared/FYP/$number /Users/Shared/FYP/$number
 ((i++))
done </Users/Shared/$2.txt
exit
EOI

Im Grunde liest es eine Textdatei, die den Speicherort bestimmter Bilder angibt, und erstellt eine Miniaturansicht dieser Bilder, die später heruntergeladen werden kann. Das Problem ist, dass ich den Wert von $ i brauche, um die Werte von $ location und $ number zu setzen, aber wenn ich die Variable innerhalb der while-Schleife setze, werden die Variablen nicht gesetzt. Ich habe versucht, es lokal und global mit einfachen Anführungszeichen, doppelten Anführungszeichen zu setzen, mit dem sshpass durchzugehen und es zu exportieren. Dies funktioniert als Test, aber $ i ist natürlich unbekannt. An diesem Punkt habe ich meine Ideen erschöpft, es ist wahrscheinlich etwas unglaublich Einfaches, aber ich könnte ein neues Paar Augen gebrauchen, jede Hilfe wird sehr geschätzt!

EDIT: Vielen Dank an Charles Duffy, der mir beim Aufräumen geholfen hat.

 #!/bin/bash
        sudo /usr/local/bin/sshpass -p support ssh -o stricthostkeychecking=no -p 11022 admin@$1.noerrpole.com<<'EOI'
i=1
while read -r line
do
 location=sudo sed -n ${i}p "/Users/Shared/$1.txt"
 number=sudo sed -n ${i}p "/Users/Shared/$2n.txt"
 my_array+=( "$line" )
 sudo cp "/Applications/TEPS\ OS\ X\ Share\ Folder/MAIN\ IMAGES\ FOLDER\ ƒ/${location}${number}" "/Users/Shared/FYP/$number"
 sudo sips -Z 256 "/Users/Shared/FYP/$number" "/Users/Shared/FYP/$number"
 ((i++))
 exit
done <"/Users/Shared/$2.txt"
EOI

Aber jetzt werden $ 2 nicht an die Schleife weitergeleitet. Hier ist, was ich zurück bekomme

1:bin Photo$ bash -x thumb npco2 20131216154714
+ sudo /usr/local/bin/sshpass -p support ssh -o stricthostkeychecking=no -p 11022 [email protected]
Pseudo-terminal will not be allocated because stdin is not a terminal.
SHPA_12-16-2013/
sed: /Users/Shared/n.txt: No such file or directory
cp: /Applications/TEPS OS X Share Folder/MAIN IMAGES FOLDER ƒ/ is a directory (not copied).
Warning: /Users/Shared/FYP/ not a valid file - skipping
Warning: /Users/Shared/FYP/ not a valid file - skipping
Error 4: no file was specified
Try 'sips --help' for help using this tool

Wo also $ 2 gleich 20131216154714 sein sollte, wird eine leere Zeichenfolge wie diese zurückgegeben

sed: /Users/Shared/n.txt: No such file or directory

Der richtige Befehl wäre

sed: /Users/Shared/20131216154714n.txt

Der Rest scheitert nur daran, dass $ 2 nicht weitergereicht werden. Nochmals vielen Dank für die Hilfe!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage