Un espace dans le path et l'execution devient impossible
7 réponses
jeanpierre.salmon
J'aimerai stocker dans une variable le nom et le chemin d'un programme
puis ex=E9cuter la commande stock=E9e dans cette variable.
Le probl=E8me =E9tant que le chemin peut comporter des nom de r=E9pertoire
avec des espaces le tout en csh, exemple:
Soit test1.csh:
#######################
#!/bin/csh
# test1.csh
set mavar=3D"echo"
$mavar titi
exit
#######################
L'ex=E9cution de test1.csh fonctionne bien
>test1
titi
Maintenant je copie la commande echo
>cp /usr/bin/echo /home/roger/mes' 'prog/echo
Je v=E9rifie que la commande est bien copi=E9e
>/home/roger/mes' 'prog/echo titi
titi
Soit test2.csh:
#######################
#!/bin/csh
set mavar=3D"/home/roger /mes' 'prog/echo"
$mavar titi
exit
#######################
L'ex=E9cution de test2.csh provoque l'erreur suivante:
>test2
/home/roger/mes': Command not found.
Que puis je faire avec des quotes, double quotes ou des guillemets
pour prendre en compte l'espace dans le chemin lors de l'ex=E9cution?
Cordialement,
Jp
PS: n'h=E9sitez pas =E0 me recommander d'autres forum : je sais pas s'il
en existe d'autres sur lesquels j'obtiendrai des r=E9ponses
%%%%%%%%%%%%%%%%%%%%%%%%%% #!/bin/csh # test.csh set coucou="echo sqd" set coucou="/home/roger/tex/temp/un deux/echo" "$coucou" sqd exit %%%%%%%%%%%%%%%%%%%%%%%%%%
test.csh
/home/roger/tex/temp/un deux/echo: Command not found.
JP
Thierry B.
--{ a plopé ceci: }--
set coucou="/home/roger/tex/temp/un deux/echo" ^ ^ ^
/home/roger/tex/temp/un deux/echo: Command not found. ^^
C'est soit les " soit les , mais pas les deux...
-- Non. Ça avait été fufé lors de l'AAD1. Personne n'ayant été capable de présenter des arguments d'opposition sur le fond, ce sont donc les mouches qui en ont fait les frais une nouvelle fois.
--{ jeanpierre.salmon@gmail.com a plopé ceci: }--
set coucou="/home/roger/tex/temp/un deux/echo"
^ ^ ^
/home/roger/tex/temp/un deux/echo: Command not found.
^^
C'est soit les " soit les , mais pas les deux...
--
Non. Ça avait été fufé lors de l'AAD1.
Personne n'ayant été capable de présenter des arguments d'opposition sur le
fond, ce sont donc les mouches qui en ont fait les frais une nouvelle fois.
set coucou="/home/roger/tex/temp/un deux/echo" ^ ^ ^
/home/roger/tex/temp/un deux/echo: Command not found. ^^
C'est soit les " soit les , mais pas les deux...
-- Non. Ça avait été fufé lors de l'AAD1. Personne n'ayant été capable de présenter des arguments d'opposition sur le fond, ce sont donc les mouches qui en ont fait les frais une nouvelle fois.
jeanpierre.salmon
Merci !!! D'avoir mis le doigt dessus je croyait avoir tester avec soit l'un soit l'autre ca marche parfaitement: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #!/bin/csh set coucou=/cygdrive/c/Program Files/MiKTeX 2.5/miktex/bin/latex set coucou="/cygdrive/c/Program Files/MiKTeX 2.5/miktex/bin/latex" set coucou=/cygdrive/c/Program' 'Files/MiKTeX' '2.5/miktex/bin/latex set coucou=/cygdrive/c/Program" "Files/MiKTeX" "2.5/miktex/bin/latex set coucou='/cygdrive/c/Program Files/MiKTeX 2.5/miktex/bin/latex' "$coucou" sqd exit %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Il faut bien faire attention en utilisant la variable aprés de l'encapsuler entre guillemets afin de bien conserver les espaces!
Merci, jp
Merci !!! D'avoir mis le doigt dessus je croyait avoir tester avec
soit l'un soit l'autre ca marche parfaitement:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#!/bin/csh
set coucou=/cygdrive/c/Program Files/MiKTeX 2.5/miktex/bin/latex
set coucou="/cygdrive/c/Program Files/MiKTeX 2.5/miktex/bin/latex"
set coucou=/cygdrive/c/Program' 'Files/MiKTeX' '2.5/miktex/bin/latex
set coucou=/cygdrive/c/Program" "Files/MiKTeX" "2.5/miktex/bin/latex
set coucou='/cygdrive/c/Program Files/MiKTeX 2.5/miktex/bin/latex'
"$coucou" sqd
exit
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Il faut bien faire attention en utilisant la variable aprés de
l'encapsuler entre guillemets afin de bien conserver les espaces!
Merci !!! D'avoir mis le doigt dessus je croyait avoir tester avec soit l'un soit l'autre ca marche parfaitement: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #!/bin/csh set coucou=/cygdrive/c/Program Files/MiKTeX 2.5/miktex/bin/latex set coucou="/cygdrive/c/Program Files/MiKTeX 2.5/miktex/bin/latex" set coucou=/cygdrive/c/Program' 'Files/MiKTeX' '2.5/miktex/bin/latex set coucou=/cygdrive/c/Program" "Files/MiKTeX" "2.5/miktex/bin/latex set coucou='/cygdrive/c/Program Files/MiKTeX 2.5/miktex/bin/latex' "$coucou" sqd exit %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Il faut bien faire attention en utilisant la variable aprés de l'encapsuler entre guillemets afin de bien conserver les espaces!
Merci, jp
Alain Montfranc
a écrit
Bonjour Thierry,
Désolé ça ne marche pas :
%%%%%%%%%%%%%%%%%%%%%%%%%% #!/bin/csh # test.csh set coucou="echo sqd" set coucou="/home/roger/tex/temp/un deux/echo" "$coucou" sqd exit %%%%%%%%%%%%%%%%%%%%%%%%%%
test.csh
/home/roger/tex/temp/un deux/echo: Command not found.
JP
As tu copié "echo" là où tu dis qu'il est ?
jeanpierre.salmon@gmail.com a écrit
Bonjour Thierry,
Désolé ça ne marche pas :
%%%%%%%%%%%%%%%%%%%%%%%%%%
#!/bin/csh
# test.csh
set coucou="echo sqd"
set coucou="/home/roger/tex/temp/un deux/echo"
"$coucou" sqd
exit
%%%%%%%%%%%%%%%%%%%%%%%%%%
test.csh
/home/roger/tex/temp/un deux/echo: Command not found.
%%%%%%%%%%%%%%%%%%%%%%%%%% #!/bin/csh # test.csh set coucou="echo sqd" set coucou="/home/roger/tex/temp/un deux/echo" "$coucou" sqd exit %%%%%%%%%%%%%%%%%%%%%%%%%%
test.csh
/home/roger/tex/temp/un deux/echo: Command not found.
JP
As tu copié "echo" là où tu dis qu'il est ?- Masquer le texte des me ssages précédents -
- Afficher le texte des messages précédents -
Oui !
cp /usr/bin/echo /home/roger/mes' 'prog/echo
jeanpierre.salmon
Merci !!! D'avoir mis le doigt dessus je croyais avoir déjà testé cela ! En tous cas uniquement avec les guillemets ou uniquement avec l'antislash ca marche
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #!/bin/csh set coucou="/home/roger/mes prog/echo" set coucou='/home/roger/mes prog/echo' set coucou=/home/roger/mes" "prog/echo set coucou=/home/roger/mes' 'prog/echo set coucou=/home/roger/mes prog/echo "$coucou" toto set coucou="/home/roger/mes prog/echo" set coucou='/home/roger/mes prog/echo' eval "$coucou" titi exit %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Il faut bien faire attention en utilisant la variable aprés de l'encapsuler entre guillemets afin de bien conserver les espaces!
Merci, jp
Merci !!! D'avoir mis le doigt dessus je croyais avoir déjà testé
cela !
En tous cas uniquement avec les guillemets ou uniquement avec
l'antislash ca marche
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#!/bin/csh
set coucou="/home/roger/mes prog/echo"
set coucou='/home/roger/mes prog/echo'
set coucou=/home/roger/mes" "prog/echo
set coucou=/home/roger/mes' 'prog/echo
set coucou=/home/roger/mes prog/echo
"$coucou" toto
set coucou="/home/roger/mes prog/echo"
set coucou='/home/roger/mes prog/echo'
eval "$coucou" titi
exit
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Il faut bien faire attention en utilisant la variable aprés de
l'encapsuler entre guillemets afin de bien conserver les espaces!
Merci !!! D'avoir mis le doigt dessus je croyais avoir déjà testé cela ! En tous cas uniquement avec les guillemets ou uniquement avec l'antislash ca marche
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #!/bin/csh set coucou="/home/roger/mes prog/echo" set coucou='/home/roger/mes prog/echo' set coucou=/home/roger/mes" "prog/echo set coucou=/home/roger/mes' 'prog/echo set coucou=/home/roger/mes prog/echo "$coucou" toto set coucou="/home/roger/mes prog/echo" set coucou='/home/roger/mes prog/echo' eval "$coucou" titi exit %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Il faut bien faire attention en utilisant la variable aprés de l'encapsuler entre guillemets afin de bien conserver les espaces!