2017-06-09 4 views
0

Wie mache ich $ 1 und $ 2 Variablen auf die Remote-Shell durch ssh. Im Folgenden finden Sie die Probe,übergeben Variablen an Shell-Skript über SSH

#!/bin/bash 
user_name="${1}" 
shift 
user_password="${1}" 
shift 
tenant_name="${1}" 
realscript="/IDM_ARTIFACTS/reset.sh" 
ssh -qT [email protected] bash -c "'echo $user_name'" < "$realscript" 

ich in der Lage bin $ user_name Echo, aber nicht in der Lage es in $ realscript zuzugreifen. Kann nicht mit HERE-Tags oder einfachen Anführungszeichen '' aufgerufen werden, da das Skript keine direkten Befehle hat. Welche anderen Optionen habe ich? Bitte helfen

+0

Sie möchten also das Skript reset.sh aufrufen? Nimmt es andere Eingaben als die Befehlszeilenoptionen? –

+0

Ist 'reset.sh' auf dem Remote-Host? – Jack

+0

@Jack ja reset.sh muss auf Remote-Host sein – chayanika

Antwort

0

Ich habe nicht das Skript, so habe ich einen Test auf meiner Remote-Host:

$ realscript=/home/jack/show_params.sh 

$ second="second one" 

$ ssh TEST cat ${realscript} 
#!/bin/bash 
nParams=$# 
echo There are ${nParams} parameters. 
for ((ii=1; ii<=${nParams}; ii++)); do 
    echo "$1" 
    shift 
done 

$ ssh TEST 'bash '${realscript}' "first one" '\'${second}\' 
There are 2 parameters. 
first one 
second one 

Das Zitat wird es ein wenig seltsam, aber man kann in den Parametern Variablen mit Leerzeichen übergeben.

Verwandte Themen