En passant la variable par l'intermédiaire de ssh ne marche pas
Je suis en train de passer une variable par une connexion ssh, comme ceci:
working_dir="/home/user/some_dir/"
ssh $USER@some_host 'qsub $working_dir/some_file.txt'
La connexion est établie, mais ce code me donne l'erreur suivante:
working_dir: Undefined variable.
Ceci pourrait être expliqué par le fait que la machine distante n'a pas la variable $working_dir
depuis qu'il a été défini localement.
Est-il un moyen d'obtenir la valeur de la commande localement?
OriginalL'auteur lugte098 | 2010-03-10
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser des guillemets, qui doit évaluer la variable localement:
ssh $USER@some_host "qsub $working_dir/some_file.txt"
Peu de bash-recette de la mine: "Utilisez des guillemets simples, que si vous devez vous assurer que le contenu d'entre eux doit être interprétée littéralement."
qu'en est quand vous avez besoin pour développer un grep variable localement pour être transmis à une commande à distance? ssh qa@myremote " trouver $(ls -r /home/aq/log/*.*.log | grep -vi de la vérification | head-n 1) -type f -print | xargs grep $ERREURS'
OriginalL'auteur orithena
Vous utilisez une chaîne de caractères entre guillemets -- et je suppose que les variables ne sont pas interpolées à l'intérieur de ceux-ci.
Que si vous essayez avec un chaîne de caractères entre guillemets ?
Comme ceci :
Avec que, le
$working_dir
variable doit être interpolées sur votre fin, et sa valeur envoyés via la connexion ssh.Vous êtes les bienvenus 🙂
OriginalL'auteur Pascal MARTIN