Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2958 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  problème avec variable à contenu "complexe"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème avec variable à contenu "complexe"

n°2309672
xilebo
noone
Posté le 08-01-2018 à 15:38:54  profilanswer
 

Bonjour,
 
Je m'arrache depuis un certain temps sur un script shell qui n'exécute pas correctement une commande parce que je suppose ( je n'arrive pas à voir le problème ) que le contenu de la variable est trop complexe et que des choses sont perdues.
 
Si je fais ça, ça marche ( ignorez $1 $2, $4 , le problème n'est pas là )
 

Code :
  1. TOTO="-re -threads 8 -framerate 60 -vaapi_device /dev/dri/renderD128 -hwaccel vaapi -f x11grab -draw_mouse 0 -video_size 1280x720 -i :0.0 -vsync 0 -vf 'fps=24,hwupload,format=nv12|vaapi' -c:v h264_vaapi -g 72 -qp 29 -an -f mpegts udp://227.50.1.14:30120"
  2. echo "TOTO : " $TOTO
  3. start-stop-daemon --nicelevel $4 --start --quiet --background --make-pidfile --pidfile $2 --exec $1 -- -re -threads 8 -framerate 60 -vaapi_device /dev/dri/renderD128 -hwaccel vaapi -f x11grab -draw_mouse 0 -video_size 1280x720 -i :0.0 -vsync 0 -vf 'fps=24,hwupload,format=nv12|vaapi' -c:v h264_vaapi -g 72 -qp 29 -an -f mpegts udp://227.50.1.14:30120


 
 
par contre si je fais ça, ça marche pas :
 

Code :
  1. TOTO="-re -threads 8 -framerate 60 -vaapi_device /dev/dri/renderD128 -hwaccel vaapi -f x11grab -draw_mouse 0 -video_size 1280x720 -i :0.0 -vsync 0 -vf 'fps=24,hwupload,format=nv12|vaapi' -c:v h264_vaapi -g 72 -qp 29 -an -f mpegts udp://227.50.1.14:30120"
  2. echo "TOTO : " $TOTO
  3. start-stop-daemon --nicelevel $4 --start --quiet --background --make-pidfile --pidfile $2 --exec $1 -- $TOTO


 
 
Alors que ca marche pour d autres programmes si les paramètres sont moins complexes, je n'arrive pas à voir si c'est les " ' " , ou les " : " de ma ligne de commande qui gênent.
 
A noter que si je fais ca, ca ne marche pas non plus ( notez les guillemets supplémentaires autour des paramètres )
 

Code :
  1. TOTO="-re -threads 8 -framerate 60 -vaapi_device /dev/dri/renderD128 -hwaccel vaapi -f x11grab -draw_mouse 0 -video_size 1280x720 -i :0.0 -vsync 0 -vf 'fps=24,hwupload,format=nv12|vaapi' -c:v h264_vaapi -g 72 -qp 29 -an -f mpegts udp://227.50.1.14:30120"
  2. echo "TOTO : " $TOTO
  3. start-stop-daemon --nicelevel $4 --start --quiet --background --make-pidfile --pidfile $2 --exec $1 -- "-re -threads 8 -framerate 60 -vaapi_device /dev/dri/renderD128 -hwaccel vaapi -f x11grab -draw_mouse 0 -video_size 1280x720 -i :0.0 -vsync 0 -vf 'fps=24,hwupload,format=nv12|vaapi' -c:v h264_vaapi -g 72 -qp 29 -an -f mpegts udp://227.50.1.14:30120"

 
 
 
Une idée comment contourner le problème ? je ne suis pas très bon en bash, je n'arrive pas çà voir la subtilité.
 
Merci d'avance :jap:

mood
Publicité
Posté le 08-01-2018 à 15:38:54  profilanswer
 

n°2309673
xilebo
noone
Posté le 08-01-2018 à 15:48:33  profilanswer
 

c'est un truc de ouf , j'ai tenté de logguer la ligne de commande dans un fichier :  
 

Code :
  1. echo "start-stop-daemon --nicelevel $4 --start --quiet --background --make-pidfile --pidfile $2 --exec $1 -- -re -threads 8 -framerate 60 -vaapi_device /dev/dri/renderD128 -hwaccel vaapi -f x11grab -draw_mouse 0 -video_size 1280x720 -i :0.0 -vsync 0 -vf 'fps=24,hwupload,format=nv12|vaapi' -c:v h264_vaapi -g 72 -qp 29 -an -f mpegts udp://227.50.1.14:30120" > /tmp/1.log
  2. echo "start-stop-daemon --nicelevel $4 --start --quiet --background --make-pidfile --pidfile $2 --exec $1 -- $TOTO" > /tmp/2.log


 
1.log et 2.log sont identiques.
 
Pourtant, si j'exécute la ligne 1, le programme s'exécute bien, si j'exécute la ligne 2 il se quitte. Je n'arrive pas à voir pourquoi il se quitte j'ai aucun log nulle part. Je suppose qu'il y a quelque chose qui ne va pas dans la ligne de commande mais quoi ?

n°2309674
xilebo
noone
Posté le 08-01-2018 à 16:02:53  profilanswer
 

bon , trouvé. Pour une raison que je n'ai pas encore bien comprise, il ne faut pas que je mette les " ' " quand je passe par une variable. Par contre dans la ligne de commande directe, il faut le faire sinon ca ne marche pas.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  problème avec variable à contenu "complexe"

 

Sujets relatifs
Vérifier si variable existe dans la base de donnéeNoob: Oracle SQL probleme conversion date
JAVA Variable final ???Afficher le contenu d'une ligne de la bdd
[Langage C] Problème d'affichage Chat 2 clientsProbleme execution VBS sous windows 10
probleme de boucleDeplacer le contenu d'un repertoire vers son parent
probleme en programmation c "chaine de caracteres dans une fonction 
Plus de sujets relatifs à : problème avec variable à contenu "complexe"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR