Hallo zusammen,
ich habe ein Script, dem ich mehrere Argumente der Form --p1 param1 --p2 param2 usw. mitgeben kann. Dieses führe ich sowohl lokal als auch über ssh auf einem anderen Rechner aus.
Grundsätzlich funktioniert das auch, aber es scheint Probleme zu geben, wenn der erste Parameter mit -- beginnt. Ich erhalte dann (sinngemäß) die Meldung "bash: Unknown parameter"
Kennt jemand die Ursache? Wie kann man das umgehen? Die genaue Fehlermeldung kann ich leider erst morgen nachreichen. Heute abend habe ich kein Remote-System zur Verfügung. Aber vielleicht findet sich ja schon jemand, der helfen kann
Hier die beiden Scripte. Ausgeführt wird main.sh, welches dann testscript.sh lokal und über ssh ausführt
ich habe ein Script, dem ich mehrere Argumente der Form --p1 param1 --p2 param2 usw. mitgeben kann. Dieses führe ich sowohl lokal als auch über ssh auf einem anderen Rechner aus.
Grundsätzlich funktioniert das auch, aber es scheint Probleme zu geben, wenn der erste Parameter mit -- beginnt. Ich erhalte dann (sinngemäß) die Meldung "bash: Unknown parameter"
Kennt jemand die Ursache? Wie kann man das umgehen? Die genaue Fehlermeldung kann ich leider erst morgen nachreichen. Heute abend habe ich kein Remote-System zur Verfügung. Aber vielleicht findet sich ja schon jemand, der helfen kann
Hier die beiden Scripte. Ausgeführt wird main.sh, welches dann testscript.sh lokal und über ssh ausführt
Code:
#/bin/bash
# main.sh
param1=abc
param2=def
# Lokal funktioniert es
./testscript.sh --p1 $param1 --p2 $param2
# Mit dummy-Argument geht es auch über ssh
ssh user@hostname 'bash -s' < ./testscript.sh dummy --p1 $param1 --p2 $param2
# Ohne dummy-Argument geht es über ssh nicht
ssh user@hostname 'bash -s' < ./testscript.sh --p1 $param1 --p2 $param2
Code:
#!/bin/bash
# testscript.sh
var1=""
var2=""
while [ $# -gt 0 ]; do
arg=$1
shift
case $arg in
--p1)
var1=$1
shift
;;
--p2)
var2=$1
shift
;;
esac
done
echo var1: $var1
echo var2: $var2