RSH dos/unix : Modifier retour chariot
wingover
Messages postés
21
Statut
Membre
-
wingover Messages postés 21 Statut Membre -
wingover Messages postés 21 Statut Membre -
Bonjour,
J'exécute un programme sur un serveur unix (ksh) distant depuis mon poste windows XP via cmd et en utilisant rsh.
Jusque là aucun problème. Mais le programme en question attend des entrées de ma part ce qui là encore ne pose pas de problème vu que l'entrée est bien redirigée.
Le pb, c'est que lorsque je valide mes choix, en tapant la touche entrée dans cmd, un retour chariot windows (\r\n) est envoyé ce qui pose un pb dans mon script.
Exemple de script ksh à exécuter côté unix:
Si on exécute ce script côté unix et que l'on entre "ok", le script écrit "OK !!!"
En revanche si on exécute ce script côté windows via rsh :
On pourra noter au passage que la ligne
Ce qui me fait penser que la variable option contient "ok\r" et non juste "ok".
Connaissez-vous ce problème et un moyen d'y remédier ?
Merci d'avance
J'exécute un programme sur un serveur unix (ksh) distant depuis mon poste windows XP via cmd et en utilisant rsh.
Jusque là aucun problème. Mais le programme en question attend des entrées de ma part ce qui là encore ne pose pas de problème vu que l'entrée est bien redirigée.
Le pb, c'est que lorsque je valide mes choix, en tapant la touche entrée dans cmd, un retour chariot windows (\r\n) est envoyé ce qui pose un pb dans mon script.
Exemple de script ksh à exécuter côté unix:
echo "Test:"
read option
echo "OPTION=$option!!!"
if [[ "$option" == "ok" ]]
then
echo ' OK !!!!!!!!!!!!'
else
echo ' KO :-('
fi
Si on exécute ce script côté unix et que l'on entre "ok", le script écrit "OK !!!"
En revanche si on exécute ce script côté windows via rsh :
rsh <nom_du_serveur> <nom_du_script>et que l'on entre "ok", le script retourne "KO :-("
On pourra noter au passage que la ligne
echo "OPTION=$option!!!"affiche
"OPTION=ok!!!"sous unix mais
"!!!ION=ok"sous windows.
Ce qui me fait penser que la variable option contient "ok\r" et non juste "ok".
Connaissez-vous ce problème et un moyen d'y remédier ?
Merci d'avance
A voir également:
- RSH dos/unix : Modifier retour chariot
- Fonction ms dos non valide - Forum Windows 8 / 8.1
- Fichier executable unix ✓ - Forum MacOS
- Lister les disques sous dos ✓ - Forum Windows
- 10 commande ms-dos - Guide
- Unix scrabble ✓ - Forum loisirs/vie pratique
8 réponses
Je ne vois pas de solution simple pour remédier à ça du coté windows, à part utiliser cygwin pour travailler dans un environnement de type unix.
Sur ton script tu peut aussi supprmier tout les \r de ton paramètres avec un petit
Sur ton script tu peut aussi supprmier tout les \r de ton paramètres avec un petit
option=$(echo $option | sed 's/\\r//g')
Merci,
Effectivement ça marcherait pour ce script mais il me faudrait une solution globale qui marche quel que soit le programme (y compris un exécutable compilé).
Je pensais qu'il existait peut être un moyen de configurer le caractère utilisé par cmd pour les retour chariots (via la base de registre par exemple). Mais c'était juste une idée, je ne sais pas si cela existe.
Je suis étonné que ce problème ne soit pas plus courant. Personne ne se connecte à des serveur unix depuis windows ?
Effectivement ça marcherait pour ce script mais il me faudrait une solution globale qui marche quel que soit le programme (y compris un exécutable compilé).
Je pensais qu'il existait peut être un moyen de configurer le caractère utilisé par cmd pour les retour chariots (via la base de registre par exemple). Mais c'était juste une idée, je ne sais pas si cela existe.
Je suis étonné que ce problème ne soit pas plus courant. Personne ne se connecte à des serveur unix depuis windows ?
Si c'est un fichier enregistré, tu peux utiliser Notepad++ pour convertir les retours chariots ou pour que soit par défaut pour un nouveau fichier. C'est peut-être trop simple ... Essayes aussi d'enregistrer ton script en UTF-8. Et avec la commande awk avec printf ou printf tout seul à la place de la commande echo ? Salut, à+.
Non, non, il ne s'agit pas de conversion de caractère dans un fichier mais d'un problème de communication entre un shell windows et un shell unix.
Merci quand même Hip.
Merci quand même Hip.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Et si tu passe ton option en paramètre au lieu de le passer via un read, ça te fais la même erreur ?
Si ça ne marche pas utilise cygwin :p
Si ça ne marche pas utilise cygwin :p
non, pas de problème dans ce cas puisque je passerai mon option comme paramètre en l'inscrivant dans la chaine de caractère de l'instruction rsh. Dans ce cas, pas de retour chariot perturbateur mais ça ne répond pas au problème.
La finalité serait de pouvoir appeler depuis windows un exécutable unix que je ne peux pas modifier. Tout marche bien excepté la transmission des entrées.
La finalité serait de pouvoir appeler depuis windows un exécutable unix que je ne peux pas modifier. Tout marche bien excepté la transmission des entrées.