#1 Le 24/06/2012, à 11:46
- roger64
(abandonné) Conclusion d'un script bash
Bonjour
Le script est le suivant: cela se passe bien jusqu'à gnome-terminal qui s'ouvre bien sur le bureau. Mais après, il faut que je rentre les commandes à la main (à partir de cd) alors que je voudrais qu'elles s'exécutent dans le terminal.
#! /bin/bash
title=$(zenity --entry --title "Titre EPUB" --text "Nom seul(sans suffixe)" --entry-text=TITLE)
echo "title=$title"
cp -a "${title}".epub "${title}".zip
unzip "${title}".zip
echo "dézippé"
zenity --info --text "dézippé"
gnome-terminal
cd ~/Bureau/OEBPS/Text/
pcregrep -o -h 'class=".+?"' * >fic_tmp.$$
for i in $(sort -u fic_tmp.$$); do echo "$i $(grep -rc $i fic_tmp.$$)"; done | sort -t ' ' -k2 -nr
Dernière modification par roger64 (Le 26/06/2012, à 11:56)
Hors ligne
#2 Le 24/06/2012, à 11:54
- cracolinux
Re : (abandonné) Conclusion d'un script bash
gnome-terminal -e ' cd ~/Bureau/OEBPS/Text/ ; pcregrep -o -h 'class=".+?"' * >fic_tmp.$$ ; for i in $(sort -u fic_tmp.$$); do echo "$i $(grep -rc $i fic_tmp.$$)"; done | sort -t ' ' -k2 -nr '
?
Hors ligne
#3 Le 24/06/2012, à 13:03
- roger64
Re : (abandonné) Conclusion d'un script bash
@cracolinux
Si je passe toute ta commande isolément dans un terminal, ça va. Mais dans le cadre du script, non, j'obtiens la réponse ci-dessus. C'est pareil que je garde ou que j'enlève les guillemet simples.
Hors ligne
#4 Le 24/06/2012, à 13:52
- cracolinux
Re : (abandonné) Conclusion d'un script bash
gnome-terminal -e 'bash -c "cd ~/Bureau/OEBPS/Text/ ; pcregrep -o -h 'class=".+?"' * >fic_tmp.$$ ; for i in $(sort -u fic_tmp.$$); do echo "$i $(grep -rc $i fic_tmp.$$)"; done | sort -t ' ' -k2 -nr "'
?
Hors ligne
#5 Le 24/06/2012, à 15:19
- roger64
Re : (abandonné) Conclusion d'un script bash
Plus rien du tout même quand l'enlève les guillemets simples et doubles.
Hors ligne
#6 Le 24/06/2012, à 16:14
- ljere
Re : (abandonné) Conclusion d'un script bash
pourquoi ne pas remplacer par
sh -c """cd ~/Bureau/OEBPS/Text/; pcregrep -o -h 'class=".+?"' * >fic_tmp.$$ ; for i in $(sort -u fic_tmp.$$); do echo "$i $(grep -rc $i fic_tmp.$$)"; done | sort -t ' ' -k2 -nr;"""
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#7 Le 24/06/2012, à 16:33
- roger64
Re : (abandonné) Conclusion d'un script bash
pourquoi ne pas remplacer par
sh -c """cd ~/Bureau/OEBPS/Text/; pcregrep -o -h 'class=".+?"' * >fic_tmp.$$ ; for i in $(sort -u fic_tmp.$$); do echo "$i $(grep -rc $i fic_tmp.$$)"; done | sort -t ' ' -k2 -nr;"""
Le nombre de guillements a augmenté mais ça ne marche pas. Si vous voulez télecharger un EPUB pour faire l'essai:
http://dl.dropbox.com/u/31141350/Histoi … A2nes.epub
C'est un juste un fichier zip en fait avec un suffixe différent.
Hors ligne
#8 Le 24/06/2012, à 19:43
- nesthib
Re : (abandonné) Conclusion d'un script bash
Ce que tu essaies de faire roger64 est un peu en même temps à l'encontre de la philosophie CLI et GUI…
Soit tu veux faire quelque chose avec une interface graphique et tu fais en sorte de récupérer l'entrée utilisateur en graphique et d'afficher le retour en graphique (par exemple avec zenity), soit tu fais un logiciel en CLI et c'est l'utilisateur qui lancera lui même ton script dans le terminal de son choix (imagine que quelqu'un n'ait pas ou n'aime pas gnome-terminal). Mais lancer un terminal depuis un script shell ne me paraît ni la solution la plus simple, ni la plus pratique.
Si tu veux créer une application CLI pour quelqu'un ne sachant pas trop utiliser un terminal, tu peux créer un lanceur vers ton script en ajoutant l'option « lancer dans un terminal »
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#9 Le 25/06/2012, à 07:06
- roger64
Re : (abandonné) Conclusion d'un script bash
@nesthib
Merci de tes explications. Tu as raison mais, ceci dit, que faire? Je ne sais pas comment afficher le résultat ici bas en graphique, par exemple avec zenity. J'aimerais bien, ce serait plus "classe" (c'est le mot juste).
La commande me sert à vérifier un EPUB. Elle comptabilise les styles utilisés (ayant une classe) dans un EPUB. Mais pour y arriver c'est fastidieux et ça décourage de l'utiliser: il faut que je copie l'EPUB et que je le rebaptise l'EPUB en zip, que je l'ouvre, puis que je lance la commande. Le terminal affiche alors une liste du genre:
roger@lmde64 ~/Bureau/OEBPS/Text $ pcregrep -o -h 'class=".+?"' * >fic_tmp.$$
roger@lmde64 ~/Bureau/OEBPS/Text $ for i in $(sort -u fic_tmp.$$); do echo "$i $(grep -rc $i fic_tmp.$$)"; done | sort -t ' ' -k2 -nr
class="example" 208
class="listheading" 164
sigilNotInTOC" 162
class="sigilNotInTOC" 160
class="tiptext" 123
class="tipheader" 98
class="tip" 97
class="image" 85
class="menuitem" 74
class="h2subheading" 23
class="button" 23
class="first" 22
class="indent" 16
class="toolbar" 15
class="reference 15
class="reference 15
external" 13
class="shortcut" 9
class="simple" 8
class="heading 8
class="heading" 6
class="h1subheading" 5
class="dropcap" 3
internal" 2
class="version" 1
class="title" 1
class="superscript" 1
class="subscript" 1
class="rights" 1
class="logo" 1
class="coverimage" 1
class="boldtext" 1
class="author" 1
roger@lmde64 ~/Bureau/OEBPS/Text $
J'ai aussi prévu d' ajouter une commande pour détruire les fichiers créés par la décompression.
Hors ligne
#10 Le 26/06/2012, à 08:00
- roger64
Re : (abandonné) Conclusion d'un script bash
J'ai déplacé la question sur le forum Programmation en la reformulant. Merci de votre aide.
Dernière modification par roger64 (Le 26/06/2012, à 11:56)
Hors ligne