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 24/10/2024, à 19:29

fred-cavernedufond

[RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?

Bonjour,
Comment rédiger une ligne de commande voire un petit script, permettant de lancer plusieurs de ces commandes de nattoyage en une seule fois ?
https://doc.ubuntu-fr.org/nettoyer_ubuntu
L'idée est de ne pas se fader à chaque fois la recopie de plusieurs lignes dans le terminal... smile
Fred

Dernière modification par fred-cavernedufond (Le 17/11/2024, à 10:00)


Fred
Ubuntu 22.04 LTS

Hors ligne

#2 Le 24/10/2024, à 20:29

fred-cavernedufond

Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?

#3
ma...yé rien essayé yé sé pas faire, sénior ...yé pourquoi yé pose la questionne' big_smile
...et yé comprends pas ou lé sénior y voit la réponse dans la questionne...si la réponse yé dans la questionné, yé poserais pas la questionne, no ? big_smile


Fred
Ubuntu 22.04 LTS

Hors ligne

#3 Le 24/10/2024, à 20:36

Watael

Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?

rédiger [...] un script

stfw

Dernière modification par Watael (Le 24/10/2024, à 20:37)


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

Hors ligne

#4 Le 25/10/2024, à 08:34

fred-cavernedufond

Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?

Watael a écrit :

rédiger [...] un script

stfw

Merci. Je vais travailler le sujet bien que je sois allergique à la programmation. Je reformule : en une seule ligne de commande, je souhaite l'exécution de ces différentes commandes en une seule fois via le terminal :

sudo apt autoclean
sudo apt purge ~c
LANG=C snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision ; do sudo snap remove "$snapname" --revision="$revision" ; done 

Je pourrais ajouter des commandes si besoin. Est-ce qu'une simple virgule suffit à séparer chaque instruction ?
Fred


Fred
Ubuntu 22.04 LTS

Hors ligne

#5 Le 25/10/2024, à 08:36

Sciensous

Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?

hé hé je vais être encore plus sympa tongue :
un fichier texte (ex: fred.delacaverne) contenant:

commande1
commande2
commande3

et pour lancer: source <lefcichieravecsasnchemin>
(ex: source /home/fred/fred.delacaverne )
(chemin à adapter avec le vrai)

amélioration: ajout d'un shebang au début:
#!/bin/sh (moi)
ou
#!/bin/bash (Watel)

qui permet de le rendre executable

cool


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#6 Le 25/10/2024, à 10:16

Watael

Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?

fred-cavernedufond a écrit :

en une seule ligne de commande, je souhaite l'exécution de ces différentes commandes en une seule fois via le terminal

ce n'est pas souhaitable. Il vaut mieux mettre toutes les commandes dans un fichier, et rendre ce dernier exécutable (chmod +x /chemin/nomFichier).

Sciensous a écrit :

pour lancer: source <lefcichieravecsasnchemin>

Attention ! avec source, le script va être exécuté dans l'environnement courant, et, éventuellement, le modifier.
les scripts que je n'ai pas encore rendus exécutables sont exécutés ainsi : bash /chemin/nomScript, où l'indication du chemin est facultative.

on peut rendre exécutable un script sans shebang, c'est alors le shell de connexion de l'utilisateur qui sera utilisé.

si un script ne contient qu'une suite de commandes externes, je n'utilise pas bash. smile


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

Hors ligne

#7 Le 25/10/2024, à 10:40

Sciensous

Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?

merci pour ces précisions Watael wink (j'ai voulu faire simple)

que veux-tu dire :

Watael a écrit :

si un script ne contient qu'une suite de commandes externes, je n'utilise pas bash. smile

dans ce cas tu n'utilises pas bash mais quoi à la place ?

Dernière modification par Sciensous (Le 25/10/2024, à 10:41)


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#8 Le 25/10/2024, à 14:43

Watael

Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?

dans ce cas, j'utilise sh.
ça peut être un lien vers bash, et, alors, appelé ainsi il s'exécute en mode POSIX.
mais (je viens de parcourir le man pour ne pas dire plus de bêtise) ça ne concerne que la lecture des fichiers de configuration, et ça n'allège pas l'exécution (toutes les commandes bash sont accessibles (shopt, [[...)).
il n'y a donc pas de gain à utiliser sh, dans ce cas, plutôt que bash.

l'emploi /bin/sh indique tout de même l'intention d'être POSIX.

mais pour être sûr de ne pas utiliser de "bashisme", il vaudrait mieux mettre /bin/dash en shebang.

Dernière modification par Watael (Le 25/10/2024, à 19:48)


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

Hors ligne

#9 Le 25/10/2024, à 18:16

RaphaelG

Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?

Dans ma 24.04, /bin/sh est un lien symbolique vers /bin/dash donc pour moi les shebangs #!/bin/sh et #!/bin/dash sont strictement équivalents.

~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Mar 31  2024 /bin/sh -> dash
~$ ls -l /bin/dash
-rwxr-xr-x 1 root root 129784 Mar 31  2024 /bin/dash
~$ ls -l /bin/bash
-rwxr-xr-x 1 root root 1446024 Mar 31  2024 /bin/bash
~$

Ils ne font pas du tout la même taille. J'en déduis que l'empreinte mémoire n'est pas du tout la même.

En ligne

#10 Le 25/10/2024, à 19:06

Sciensous

Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?

smile

pour revenir au sujet de Fred_carvernedufond: il y aussi la possibilité de l'alias:

alias maj='commande1; commande2; comande3'

à mettre de préférence dans .bash_aliases

cool


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#11 Le 26/10/2024, à 09:46

fred-cavernedufond

Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?

Sciensous a écrit :

smile pour revenir au sujet de Fred_carvernedufond: il y aussi la possibilité de l'alias:

alias maj='commande1; commande2; comande3'

à mettre de préférence dans .bash_aliases cool

...c'est l'idée, mais ce qui me bloque également c'est le fait de savoir comment vont interagir ces commandes (ici trois prises au hasard dans l'idée du nettoyage machine) ?  Je m'explique : si,  pour etre exécuté, une commande à besoin d'une confirmation de l'utilisateur du type "Voulez-vous supprimer/installer ces fichiers ?", il faut
a) soit entrer une valeur fixe "oui/non" dans la ligne de commande ou script, qui sera alors systématiquement répété.
b) soit supprimer cette interaction
c) autre ?

Bon okay, il y Bleach bit mais c'est histoire d'apprendre smile
Fred

Dernière modification par fred-cavernedufond (Le 26/10/2024, à 09:48)


Fred
Ubuntu 22.04 LTS

Hors ligne

#12 Le 26/10/2024, à 10:19

Tawal

Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?

Hello,

Si tes commandes doivent prendre des paramètres variables, je te conseille de passer par un script exécutable.
Ainsi tu pourras passer les arguments nécessaires aux commandes directement au script.
Il faudra bien sûr que le script traite ces arguments pour les donner aux bonnes commandes.
Pour en apprendre plus : La programmation «Shell» - developpez.com

Edit:
Je te déconseille fortement Bleachbit, inutile.

Dernière modification par Tawal (Le 26/10/2024, à 10:21)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#13 Le 17/11/2024, à 10:00

fred-cavernedufond

Re : [RESOLU] Faire un batch avec plusieurs commandes terminal d'un coup ?

Sciensous a écrit :

hé hé je vais être encore plus sympa tongue :
un fichier texte (ex: fred.delacaverne) contenant:

commande1
commande2
commande3

J'aime ces réponses simples et efficaces ; c'est ce à quoi je pensais.
Parfait Merci cool


Fred
Ubuntu 22.04 LTS

Hors ligne