Hallo,
da dachte ich, versuch mal mit icon ein altes Problem von mir zu lösen, nämlich SCP mit Parameterübergabe.
Code
## Programm zur Ausführung von SCP mit Parametern
procedure main(param)
write (param[1])
write (param[2])
waszusenden:=param[2] ## adressnummer file
# die richtige Adresse wird später mittels case ermittelt
adresse1:="root@192.168.1.102:/root"
adresse2:="kl@192.168.1.100:/home/kl/ip106"
write(adresse1)
write(waszusenden)
## das klappt nicht
system("scp waszusenden adresse1")
cp: Aufruf von stat für name nicht möglich: Datei oder Verzeichnis nicht gefunden
Was ja auch klar ist, wir wollen den Inhalt der Variablen kopieren, in shell wäre $ angebracht
## das klappt
system("scp hallo.icn root@192.168.1.102:/root")
end
Alles anzeigen
Wie muss ich die Parameter korrekt in diesem Aufruf übergeben?
Egal, ich gebe ja nie auf und habe immer auch einen Plan B. Siehe hier, ich erzeuge einfach ein shell script.
Code
zeile1 :="#!/bin/bash"
zeile2 := "scp " || waszusenden || " " || adresse1
zeile3 := "exit 0"
fh:=open("s1.sh","w")
write ( fh,zeile1)
write ( fh,zeile2)
write ( fh,zeile3)
close (fh)
system("./s1.sh")
Und somit is mein Problem gelöst, SCP mit Parameterübergabe.
./mscp 1 hallo.icn
Habe ich gedacht, aber dann das:
Code
kl@kld:~/icon-v951/bin$ ./myscp 1 hallo.icn
scp hallo.icn root@192.168.1.102:/root
hallo.icn 100% 65 0.1KB/s 00:00
Das funktioniert immer!
nano s1.sh
!/bin/bash
scp hallo.icn root@192.168.1.102:/root
exit 0
Das funktioniert dann nicht
kl@kld:~/icon-v951/bin$ ./myscp 2 hallo.icn
scp hallo.icn root@192.168.1.106:/root
add PATH to Icon
Und es geht weiter,:
Der Fehler kommt vom shell script
kl@kld:~/icon-v951/bin$ ./s1.sh
add PATH to Icon
nano s1.sh
!/bin/bash
scp hallo.icn root@192.168.1.106:/root
exit 0
Alles anzeigen
Nichts ist einfach im Leben:-)
Nachtrag, das hier ist mein Ubuntu-Rechner, auf Raspberry klappt das alles gut.
VM