Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/08/2016, à 17:42

Compte anonymisé

bash: creation d'un script executable

Bonjour,
Je crée un script qui fonctionne de cette façon :

Tant que les commandes suivantes ne renvoient pas de code d'erreur , execute-les l'une aprés l'autre .
Sinon , affiche le nom de la commande problématique + le code d'erreur .

Mais "$?" n'affiche que le code de la commande précédente .

Comment faire ?

#2 Le 22/08/2016, à 18:18

Watael

Re : bash: creation d'un script executable

par définition, "la commande suivante" ne peut pas retourner de code d'erreur, puisqu'elle n'a pas encore été exécutée !

bachi-bouzouk || echo "la commande \"bachi-bouzouk\" a retourné $?" >&2

si tu veux exécuter scolopendre après bachi-bouzouk, si cette dernière n'a pas échoué, et affiché un message d'erreur, il n'y a pas de secret, pas de magie : il faut le programmer :

bachi-bouzouk
retVal=$?
test $retVal -ge 1 && { echo "la commande \"bachi-bouzouk\" a retourné $?" >&2; exit 1;}
scolopendre
# et ainsi de suite

Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#3 Le 23/08/2016, à 01:06

Compte anonymisé

Re : bash: creation d'un script executable

merci.

Aussi, je cherche a prendre une entrée et à l'écrire en même temps dans un fichier ,  je n'y arrive pas :

j-user@Lubuntu-16:~$ read -r > "test.txt"
hello
j-user@Lubuntu-16:~$ cat test.txt
j-user@Lubuntu-16:~$

#4 Le 23/08/2016, à 02:05

Watael

Re : bash: creation d'un script executable

ça, ça relève de la magie.

tu lis l'entrée clavier, et ensuite tu rediriges son affichage vers un fichier.

il faut lire un bon tuto : bash for beginners, et ensuite Advanced Bash Scripting guide.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#5 Le 23/08/2016, à 16:00

Compte anonymisé

Re : bash: creation d'un script executable

infinite a écrit :

je cherche a prendre une entrée et à l'écrire en même temps dans un fichier

J'entendais par là : "en une seule commande" .
Comment sortir le contenu de read dans un fichier , dès que l'utilisateur entre quelque chose?

Dernière modification par Compte anonymisé (Le 23/08/2016, à 16:05)

#6 Le 23/08/2016, à 17:58

Watael

Re : bash: creation d'un script executable

Watael a écrit :

ça, ça relève de la magie.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#7 Le 23/08/2016, à 19:20

Compte anonymisé

Re : bash: creation d'un script executable

Watael a écrit :
Watael a écrit :

ça, ça relève de la magie.

J'ai trouvé le man sur le net .
C'est surtout qu'une variable est nécessaire .
( Ma méthode aurait pu fonctionner si read utilisait une variable par défault ) .

The read builtin reads one line of data (text, user input, …) from standard input or a supplied filedescriptor number into one or more variables named by <NAME…>.

Dernière modification par Compte anonymisé (Le 23/08/2016, à 19:21)

#8 Le 23/08/2016, à 19:42

pingouinux

Re : bash: creation d'un script executable

Bonsoir,
Ça fait deux commandes, mais est-ce que ceci te conviendrait ?

read -r; echo "$REPLY" >test.txt

Hors ligne

#9 Le 05/10/2016, à 22:47

Compte anonymisé

Re : bash: creation d'un script executable

Ben c'est que je cherchais un prog qui fasse les deux .
Merci quand même .

#10 Le 07/10/2016, à 18:18

Compte anonymisé

Re : bash: creation d'un script executable

Watael a écrit :

ça, ça relève de la magie.

c'était de la magie, jusqu’à aujourd'hui !!!

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main ( int argc, char *argv[] )
{
  string mystr;
  getline (cin, mystr);
  ofstream myfile;
  myfile.open (argv[1]);
  myfile << mystr;
  myfile.close();
  return 0;
}

un petit programme qui lit l'entrée et enregistre dans un fichier. (T'as de la chance que je m'ennuie smile)

pour l'installer :

sudo apt install build-essential
gedit readtofile.cpp
# la tu colles le programme et tu le sauves
g++ -g -o readtofile readtofile.cpp
sudo mv readtofile /usr/local/bin

et ensuite tu fais simplement :

readtofile fichier.txt

#11 Le 07/10/2016, à 18:52

Watael

Re : bash: creation d'un script executable

eh ben, non. il y a un moment pour lire, et un moment pour écrire !

une simple fonction shell peut le faire aussi :

readNwrite2file() {
   echo "entrez quelque chose : "
   read var
   echo "$var" > ./fichierQuelconque
}

mais toujours en (au moins) deux temps.

Dernière modification par Watael (Le 07/10/2016, à 18:53)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#12 Le 07/10/2016, à 19:00

Compte anonymisé

Re : bash: creation d'un script executable

c'est vrai, enfaite c'était surtout pour répondre à

Ben c'est que je cherchais un prog qui fasse les deux .

apparemment un bricolage basé sur bash ne semblait pas convenir...

Après j'ai pas tout saisi à la demande.

#13 Le 13/10/2016, à 02:19

Compte anonymisé

Re : bash: creation d'un script executable

Merci pour ton alternative Anonyme68
Ton programme overwrite le fichier ou rajoute la string à la fin ?
---------------------
Existe-t-il par défault un programme similaire dans un os linux ?
---------------------
Watael , ta fonction ne demande pas un nom de fichier , c'est pas le resultat voulu .

eh ben, non. il y a un moment pour lire, et un moment pour écrire !

C'est le résultat à l'éxécution qui m'intéresse .

Dernière modification par Compte anonymisé (Le 13/10/2016, à 02:21)

#14 Le 13/10/2016, à 07:40

Compte anonymisé

Re : bash: creation d'un script executable

Tel quel, ça remplace le fichier.