Page 1 sur 1

[RESOLU] débuter en script bash ptit soucis

Posté : lun. 20 mars 2017 17:35
par calixtus06
Hello world

Voilà je me tente au script bash

J'ouvre un fichier avec nano en étant en root

Code : Tout sélectionner

#!/bin/bash
Echo "hello world"
Je l'enregistre sur le répertoire Bureau

Dans un autre terminal, depuis Bureau je le rend executable

Code : Tout sélectionner

chmod +x script.sh

Code : Tout sélectionner

./script.sh
veut pô ( ??)

Image

C'est quoi l'épisode que j'ai loupé ??

Merci d'avance

Re: débuter en script bash ptit soucis

Posté : lun. 20 mars 2017 17:56
par mpat

Code : Tout sélectionner

#!/bin/bash
echo hello world
exit 0 

Code : Tout sélectionner

cd Bureau

Code : Tout sélectionner

chmod +x script.sh

Code : Tout sélectionner

./script

Re: débuter en script bash ptit soucis

Posté : lun. 20 mars 2017 18:02
par WarLocG
Ton erreur c'est juste que 'Echo' avec une majuscule n'est pas une commande reconnue. La bonne commande est 'echo'. GNU/Linux étant sensible à la casse il différencie une commande écrite avec majuscule d'une écrite sans.

Il semblerait que tu aies aussi copié le GNU Nano avec dans ton texte. Tu peux mettre des lignes en commentaires en les précédant de #

Et sinon, exit 0 n'est pas indispensable car le programme sort par défaut avec un code 0 si tout se passe bien mais pourra servir à sortir du script en cas d'erreur avec exit 1 ou autre nombre. Par exemple.

Code : Tout sélectionner

#! /bin/bash

if [ $(id -nu) != "root" ]; then
  echo "Vous n'avez pas les privileges superutilisateur"; exit 1
else
  echo "!!! Attention execution depuis root !!!";
fi
On va tester sa fonction et ses sorties de codes erreurs.

Code : Tout sélectionner

warlocg@debian-8:~$ sh script_root.sh 
Vous n'avez pas les privileges superutilisateur
warlocg@debian-8:~$ sh script_root.sh | echo $?
1
warlocg@debian-8:~$ sudo sh script_root.sh 
!!! Attention execution depuis root !!!
warlocg@debian-8:~$ sudo sh script_root.sh | echo $?
0
Le $? affichant le code d'erreur généré par la commande.

Re: débuter en script bash ptit soucis

Posté : lun. 20 mars 2017 18:04
par tyrry
Slt ,
pour expliquer :
tu as mis Echo au lieu de echo : bref pas de majuscule , linux est sensible à la case ;)
ensuite tu as pas "terminer" le script : exit 0
@+

Re: débuter en script bash ptit soucis

Posté : lun. 20 mars 2017 18:09
par roromint
+10 warlocg a raison pour dire un enlèvement de # :)

Re: débuter en script bash ptit soucis

Posté : lun. 20 mars 2017 21:13
par mpedro

Code : Tout sélectionner

chmod -x script ou chmod +x script
C'est quoi la différence?

Re: débuter en script bash ptit soucis

Posté : lun. 20 mars 2017 21:33
par WarLocG
@mpedro
La première commande retire les droits en exécution sur le fichier et la deuxième commande le rajoute. Tu as - (moins), = (égal) et + (plus).
chmod a=rw fichier01 -> tous pourront lire (Read) et écrire (Write)
chmod ug+x fichier01 -> tous ce qui utilisateur et groupe propriétaire obtiennent en plus l’exécution (eXecute)
chmod o-w fichier01 -> tous ce qui est autre (ni utilisateur ni groupe propriétaire) perdent l'écriture
Et puis tu as les sticky-bits aussi mais je vais pas aller trop loin.
Et enfin tu as la facon binaire pour utiliser chmod aussi: comme chmod 777 fichier01 qui représente chmod a=rwx, donc rwxrwxrwx. Pour y voir plus clair r=4, w=2 et x=1, le full power équivaut donc a lire (4) + écrire (2) + exécuter (1), ce qui fait 7. Réparti sur User (u), Group (g) et Other (o), ( All (a) étant la somme des trois) => ca fait u[r,w,x] + g[r,w,x] + o[r,w,x]. Je sais pas si c'est clair assez.

Re: débuter en script bash ptit soucis

Posté : mar. 21 mars 2017 00:36
par calixtus06
hello merci à vous .Cela a fonctionné. Que me conseillez vous pour la suite ?

Re: [RESOLU] débuter en script bash ptit soucis

Posté : mar. 21 mars 2017 01:48
par WarLocG
De jouer avec des conditions puis avec des boucles, puis de mixer les deux. Et pour la suite laisse libre court à ton imagination :)

Re: [RESOLU] débuter en script bash ptit soucis

Posté : mar. 21 mars 2017 10:47
par calixtus06
ok je vais fouiller dans ce sens !
re merci !