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

  FORUM HardWare.fr
  Programmation
  Divers

  LINUX - Script Bash

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

LINUX - Script Bash

n°2082241
abaloval
Posté le 13-06-2011 à 23:46:41  profilanswer
 

 Bonjour,
 
  je ne sais pas trop où va mon problème.
  Je me casse la tête sur un truc qui semble pourtant extrêmement évident.
 
  J'ai créé le script bash suivant qui permet de chager ma MBR. (en bref, il sauvegarde sous le nom de 2011-06-14 puis restaure la 1-XP 3-Extend.mbr)
 

Code :
  1. #!/bin/bash
  2. echo bonjour
  3. mkdir /mnt/sdb1
  4. mount /dev/sdb1  /mnt/sdb1
  5. dd if=/dev/sda of=/mnt/sdb1/2011-06-14.mbr bs=512 count=1
  6. dd if=/mnt/sdb1/1-XP\ 3-Extend.mbr  of=/dev/sda bs=512


 
Ce qui m'impressionne, c'est que quand je tape ce script ligne dans une console après ligne, il n' a aucun problème.
 
Mais lorsque je lance le script, il écrit exactement ceci :

Code :
  1. bonjour
  2. dd : unrecognized operand 'r'
  3. Try 'dd --help' for more information.
  4. dd : unrecognized operand 'r'
  5. Try 'dd --help' for more information.


 
C'est quand même dingue ! Si il écrit "bonjour", ça veut dire que mon script est bien executé. Lorsque je tape "dd if=/dev/sda of=/mnt/sdb1/2011-06-14.mbr bs=512 count=1" dans une console normale, tout fonctionne très bien, alors pourquoi pas mon script ?
 
Au secours ! Je veux comprendre !

mood
Publicité
Posté le 13-06-2011 à 23:46:41  profilanswer
 

n°2082279
shaoyin
Posté le 14-06-2011 à 10:08:29  profilanswer
 

Lors de tes deux manip, tu utilises bien le même compte ?

n°2082293
roondar
Posté le 14-06-2011 à 10:53:32  profilanswer
 

Si tu essayes de mettre des guillemets autour des chemins ?

n°2082396
abaloval
Posté le 14-06-2011 à 17:46:07  profilanswer
 

 Merci pour vos réponses.
  Je réponds dans l'ordre.

 

 J'utilise une live usb de puppy-linux (plus exactement toutou linux car je trouve que c'est la live usb la plus rapide à démarrer vu que j'ai uniquement besoin de la console et de la gestion du DD SATA, mais si vous connaissez plus rapide, je suis interessé). J'ouvre tout simplement la console, pas de demande de nom d'utilisateur linux. Le problème peut-il venir de là ?

 

 
   J'ai réecrit comme ceci avec des guillemets :

Code :
  1. #!/bin/bash
  2. echo bonjour
  3. mkdir /mnt/sdb1
  4. mount /dev/sdb1  /mnt/sdb1
  5. dd if="/mnt/sdb1/1XP3Extend.mbr"  of="/dev/sda" bs=512  #Remarque : le fichier 1-XP 3-Extend.mbr a été renommé en 1XP3Extend.mbr
 

Lorsque je lance le script, il écrit :

Code :
  1. bonjour
  2. dd : unrecognized operand 'r'
  3. Try 'dd --help' for more information.
 

j'hallucine...


Message édité par abaloval le 14-06-2011 à 17:53:04
n°2089769
abaloval
Posté le 17-07-2011 à 15:00:00  profilanswer
 

up (je sais, ça fait un mois  :ange: , mais là, je me recasse la tête sur mon script... si quelqu'un avait une petite explication...)

 

Comment est-il possible qu'un script ne donne fasse pas la même chose que lorsqu'on tape directement le code dans une console ???

Message cité 1 fois
Message édité par abaloval le 17-07-2011 à 15:00:55
n°2089896
roondar
Posté le 18-07-2011 à 12:06:36  profilanswer
 

Tu n'aurais pas un caractère à la con dans ton script ?
Postes ici le retour de cette commande "bash -x nomDuScript".

n°2089900
Xavier_OM
Women are recursive
Posté le 18-07-2011 à 12:13:25  profilanswer
 

abaloval a écrit :

up (je sais, ça fait un mois  :ange: , mais là, je me recasse la tête sur mon script... si quelqu'un avait une petite explication...)
 
Comment est-il possible qu'un script ne donne fasse pas la même chose que lorsqu'on tape directement le code dans une console ???


 
Ton script est exécuté par bash.
Ta console peut utiliser autre chose (zsh, csh) et avoir un autre environnement (par exemple dd peut être un alias)


---------------
https://www.baba-patrimoine.fr/  pour tout comprendre sur l'art et le patrimoine - https://serpentaplumes.tumblr.com/
n°2090007
xilebo
noone
Posté le 18-07-2011 à 16:41:52  profilanswer
 

roondar a écrit :

Tu n'aurais pas un caractère à la con dans ton script ?
Postes ici le retour de cette commande "bash -x nomDuScript".


 
Effectivement, certains interpréteurs supportent mal les mauvais caractères de fin de ligne ( par exemple si le script a été écrit sous windows ).
 
sous windows, fin de ligne : 0x0D/0x0A ,  sous linux , 0x0A uniquement.
 
 
C'est peut être une piste.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  LINUX - Script Bash

 

Sujets relatifs
[Bash] Additioner des lignes sous conditionsScript recherche fichier photo
C, linux et les pipesProbleme d'execution de script bash
Script bash Nagios-LikeScript shell scripting bash/Linux
script en bash (linux) 
Plus de sujets relatifs à : LINUX - Script Bash


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