Graver en ligne de commande

[quote=“MisterFreez”]Quelques améliorations (moins de cat, moins de sed, meilleure utilisation de awk, de du et du shell) :
pastebin.isalo.org/ma54f0e7
Attention c’est pas testé (pour ça que je l’ai pas mis sur le wiki).[/quote]

Et c’est particulièrement pratique à récupérer pour le tester :laughing: :laughing: :laughing:

Non et ça vient pas de moi. Second essaie, second echec.
Vous pouvez le trouver là (et il est facile à télécharger) :
barmic.indefero.net/p/scripts/so … gravure.sh

J’ai une erreur à l’exécution du script :

[code]./gravure.sh
|//
(o o)
±------------oOO----(_)---------------------+
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
|
¤ BONJOUR ! ¤ ~|
|
~ ¤ Ce Script va vous permettre ¤ |
|
~ ¤ de graver facilement ¤ ~|
|
¤ vos données ¤ ~~~~~~~~~~~~~|
--------------------oOO----------------------+
|||
|| ||
ooO Ooo

./gravure.sh: 284: GRAVURE: parameter not set[/code]

Pour infos, j’utilsie zsh

Précise l’interpréteur que tu veux utiliser sur la première ligne du script :

Si le script utilise des fonctionalités qui le rende dépendant de bash :

Ensuite tu donnes les droits en execution au script :

Et on lance le script comme un exécutable classique.

J’ai bien rendu le script exécutable mais n’ait pas changé l’interpréteur, j’ai laissé celui pas défaut #!/bin/sh

Tu peux mettre un lien vers le script stp ? J’ai la flemme de fouiller tout le forum pour le retrouver.

Mon intuition me dit que le parameter not set ressemble à de la substitution de variable qui a foiré en utilisant des features de bash.

Salut,

Il est sur le wiki :slightly_smiling:

while [ "$GRAVURE" != 0 ]; do 254 echo "Que souhaitez-vous faire? (Entrez le numéro de votre choix) \n \n" 255 echo "1 \t Un disque de données " 256 #echo "2 \t Un disque audio " 257 echo "2 \t Graver une image iso " 258 echo "3 \t Effacer le disque " 259 echo "0 \t Quitter " 260 read GRAVURE

Le problème est que GRAVURE n’est pas initialisé pour le test du while
lors du premier passage dans la boucle. Le responsable est le set -u en début
de script, mais c’est un comportement assez sain donc je propose d’initialiser
GRAVURE à la chaîne vide “” juste avant le while

Eh bien si cela règle le problème, il faut changer ça sur le wiki :wink:

Salut,

Après n essais en bash j’en arrive à la conclusion
#!/usr/bin/env bash tant que zsh ne sera pas le shell par défaut de Debian :slightly_smiling:

Holà, ça fuse dans tout les coins!!

Il faut donc modifier le script??

Thuban, ne t’es tu pas aperçu de cette erreur???

Faut il avoir un interpréteur différent de zsh??

Re,

Un test avec zsh serait un plus :slightly_smiling: Merci

C’est ce que j’ai posté en premier, avec zsh mais même en changeant l’interpréteur, cela ne change rien.

Le script est erroné, la variable GRAVURE n’est pas initialisé comme l’a relevé BBT1…

Suis je donc le seul à avoir testé ce script??

J’ai pas testé…

[quote=“M3t4linux”]Holà, ça fuse dans tout les coins!!

Il faut donc modifier le script??

Thuban, ne t’es tu pas aperçu de cette erreur???

Faut il avoir un interpréteur différent de zsh??[/quote]
Eh bien non, je ne m’en suis pas aperçu, tout simplement parce que je ne l’avais pas :slightly_smiling: . Je n’ai aucune idée en ce qui concerné l’interpréteur, mais s’il manque juste une initialisation de variable, il ne faut pas hésiter à l’ajouter, il est sur le wiki pour ça.

[quote=“M3t4linux”]C’est ce que j’ai posté en premier, avec zsh mais même en changeant l’interpréteur, cela ne change rien.

Le script est erroné, la variable GRAVURE n’est pas initialisé comme l’a relevé BBT1…

Suis je donc le seul à avoir testé ce script??[/quote]

Non, je m’en sers assez souvent et initialisé ou pas il fonctionne chez moi.

Je me suis permis de le modifier pour le wiki en suivant tes conseils. A toi de REessayer :slightly_smiling:

Et qu’utilisez vous comme interpréteur??

Pourquoi ne pas simplement commencé par vérifier que la variable existe avec -z ?

Parce que si elle n’est pas initialisée et pas encore utilisée elle ne va pas exister [code]:smile:

Pour que les utilisateurs qui auraient un doute sur le shell à utiliser n’en aient plus !

#!/usr/bin/env bash
[/code]

Justement c’est ce qu’on veut, non ? On boucle si la variable n’est pas initialisée ou si elle est initialisée à autre chose que 0.

[quote=“ggoodluck47”]Parce que si elle n’est pas initialisée et pas encore utilisée elle ne va pas exister [code]:smile:

Pour que les utilisateurs qui auraient un doute sur le shell à utiliser n’en aient plus !

#!/usr/bin/env bash
[/code][/quote]
Je l’ai pas regardé en détail, mais je n’ai rien vu de spécifique à bash dans le script.