Contenu | Rechercher | Menus

Annonce

Le forum rencontre en ce moment quelques soucis de charge, il est possible qu'une erreur soit affichée quand vous postez un message, ne rechargez pas la page au risque de poster une seconde fois votre message

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

nombre réponses : 25

#0 Re : -1 »  Éditer les fichers /dev/input/* » Hier à 21:05

pingouinux
Réponses : 3

Bonjour,
D'après ce qui est dit dans ta fenêtre, tu ne devrais rien avoir à faire si le fichier /etc/X11/xorg.conf n'existe pas. Sinon, c'est ce fichier qu'il faut modifier.

#1 Re : -1 »  Éditer les fichers /dev/input/* » Aujourd'hui à 14:12

pingouinux
Réponses : 3

D'après les explications, j'essaierai d'ajouter ceci à la fin de /etc/X11/xorg.conf :

Section "InputDevice"
    Identifier	"Mouse"
    Driver	"mouse"
    Option	"Device" "/dev/input/mice"
EndSection

ou cela si ça ne marche pas :

Section "InputDevice"
    Identifier	"Mouse"
    Driver	"mouse"
EndSection

#2 Re : -1 »  (résolu)Changement de couleur de l'arière-plan. » Aujourd'hui à 12:51

pingouinux
Réponses : 2

Bonjour,
C'est possible avec gimp, en utilisant l'outil de sélection des couleurs contiguës (baguette magique), et un seuil de 30. Il suffit de sélectionner un point du fond, d'effacer la sélection, qui va être remplacée par la couleur d'arrière-plan (blanc par défaut).

#3 Re : -1 »  [Résolu] J'ai une question à propos du "grep" » Aujourd'hui à 06:04

pingouinux
Réponses : 6

Bonjour,
Pour récupérer les deux lignes qui encadrent celle contenant le mot Z :

awk '/\<Z\>/{print lig;getline;print;exit}{lig=$0}' fichier
bla bla X bla bla bla bla    <---- (1)
bla bla bla X bla bla bla    <---- (2)

Explications :
awk traite les lignes une à une.

/\<Z\>/{print lig;getline;print;exit}
Si la ligne en cours contient le mot Z, on imprime lig (la ligne précédente), on passe à la ligne suivante, on l'imprime, et on sort

{lig=$0}
On stocke la ligne en cours dans la variable lig

#4 Re : -1 »  [Résolu] J'ai une question à propos du "grep" » Aujourd'hui à 06:54

pingouinux
Réponses : 6

@gigiair #4 : Pas mal ! Tu peux même remplacer "-B1 -A1" par "-C1".

#5 Re : -1 »  Comment faire dialoguer deux scripts ? » Le 16/05/2013, à 13:21

pingouinux
Réponses : 13

Bonjour,
Si tu connais d'avance les réponses que tu vas donner, dans le bon ordre, tu peux faire ceci :

/usr/expl/bin/qnastran.3.3 <fichier_qui_contient_les_réponses

#6 Re : -1 »  Comment faire dialoguer deux scripts ? » Le 16/05/2013, à 14:13

pingouinux
Réponses : 13

Voici une suggestion en utilisant mkfifo. Le script x pose 3 questions, et attend les réponses fournies par le script y. Tu lances ./x et ./y dans 2 terminaux différents, dans cet ordre.

$ cat ./x
mkfifo /tmp/question

question="question 1"
echo "$question" >/tmp/question
sleep 1
read reponse </tmp/reponse
echo reponse à "$question" : "$reponse"

question="question 2"
echo "$question" >/tmp/question
sleep 1
read reponse </tmp/reponse
echo reponse à "$question" : "$reponse"

question="question 3"
echo "$question" >/tmp/question
sleep 1
read reponse </tmp/reponse
echo reponse à "$question" : "$reponse"

echo Fin >/tmp/question
sleep 1

rm /tmp/question
$ cat ./y
mkfifo /tmp/reponse

while true
do
   read question
   case "$question" in
   "question 1") echo "réponse à la question 1" >/tmp/reponse;;
   "question 2") echo "réponse à la question 2" >/tmp/reponse;;
   "question 3") echo "réponse à la question 3" >/tmp/reponse;;
   "Fin")        break;;
   esac
done </tmp/question

rm /tmp/reponse

Voici le résultat dans le terminal d'où x a été lancé :

$ ./x
reponse à question 1 : réponse à la question 1
reponse à question 2 : réponse à la question 2
reponse à question 3 : réponse à la question 3

#7 Re : -1 »  Comment faire dialoguer deux scripts ? » Le 16/05/2013, à 18:07

pingouinux
Réponses : 13

En gardant le même principe, j'ai un peu amélioré mes scripts.

$ cat x
mkfifo /tmp/question

Question() {
   question="$1"
   echo "$question" >/tmp/question
   until read reponse </tmp/reponse; do :; done
   echo "$reponse"
}

question="question 1"
echo reponse à "$question" : "$(Question "$question")"

question="question 2";
echo reponse à "$question" : "$(Question "$question")"

question="question 3"
echo reponse à "$question" : "$(Question "$question")"

question="Fin"
Question "$question"

rm /tmp/question
$ cat y
mkfifo /tmp/reponse

while true
do
   until read question; do :; done
   case "$question" in
   "question 1") echo "réponse à la question 1" >/tmp/reponse;;
   "question 2") echo "réponse à la question 2" >/tmp/reponse;;
   "question 3") echo "réponse à la question 3" >/tmp/reponse;;
   "Fin")        echo >/tmp/reponse; break;;
   esac
done </tmp/question

rm /tmp/reponse

À lancer comme ceci, dans un terminal :

./x & ./y

#8 Re : -1 »  Comment faire dialoguer deux scripts ? » Le 16/05/2013, à 21:33

pingouinux
Réponses : 13

Je verrais bien une solution, pas très élégante, qui peut marcher si la lecture des données se fait en début de programme.
1) Lancer le programme une première fois, traiter les questions et générer un fichier de réponses en fonction des questions.
2) Tuer le programme (à la fin du script_qui_traite_les_questions).
3) Relancer le programme en lui donnant en entrée le fichier généré.

/usr/expl/bin/qnastran.3.3 | script_qui_traite_les_questions >fichier_qui_contient_les_réponses
/usr/expl/bin/qnastran.3.3 <fichier_qui_contient_les_réponses

Ajouté : Ça ne va pas marcher, car dans l'étape 1 le programme va attendre des réponses, à moins de pouvoir lui fournir un fichier bidon.

#9 Re : -1 »  script renommant 12 images » Le 16/05/2013, à 11:51

pingouinux
Réponses : 26

Bonjour,
Inutile de renommer une photo chaque mois. Avec la solution proposée, voici ce que tu dois avoir :

$ ls -l
total 0
-rw-r----- 1 user user 0 May 16 11:48 01.jpeg
-rw-r----- 1 user user 0 May 16 11:48 02.jpeg
-rw-r----- 1 user user 0 May 16 11:48 03.jpeg
-rw-r----- 1 user user 0 May 16 11:48 04.jpeg
-rw-r----- 1 user user 0 May 16 11:48 05.jpeg
-rw-r----- 1 user user 0 May 16 11:48 06.jpeg
-rw-r----- 1 user user 0 May 16 11:48 07.jpeg
-rw-r----- 1 user user 0 May 16 11:48 08.jpeg
-rw-r----- 1 user user 0 May 16 11:48 09.jpeg
-rw-r----- 1 user user 0 May 16 11:48 10.jpeg
-rw-r----- 1 user user 0 May 16 11:48 11.jpeg
-rw-r----- 1 user user 0 May 16 11:48 12.jpeg
lrwxrwxrwx 1 user user 7 May 16 11:48 earth.jpeg -> 05.jpeg

Ajouté : Dans ton script, il faut te placer dans le répertoire où sont les photos.

#10 Re : -1 »  script renommant 12 images » Le 16/05/2013, à 13:03

pingouinux
Réponses : 26

Le script doit être écrit ainsi :

#!/bin/bash

cd /usr/share/xplanet/images
ln -sf $(date +"%m").jpeg earth.jpeg

Que donne la commande ?

ls -la /usr/share/xplanet/images/

#11 Re : -1 »  script renommant 12 images » Le 16/05/2013, à 14:22

pingouinux
Réponses : 26

Il faut que tu aies l'autorisation d'écriture sur le fichier earth.jpeg, et sur le répertoire /usr/share/xplanet/images/. Sinon, tu dois être root.
Remarque : Tu as un mélange de fichiers .jpeg et .jpg

#12 Re : -1 »  Macro » Le 14/05/2013, à 21:53

pingouinux
Réponses : 9

Bonsoir,
Il faut donner la permission d'exécution au script :

chmod u+x ./script.sh

#13 Re : -1 »  script shell qui affiche parametre » Le 12/05/2013, à 21:21

pingouinux
Réponses : 8

Bonsoir,

$ cat "affich parametre.sh"
echo "> je suis le script: $0"
echo "> Mon premier parametre est : $1"

parametre_1="$1"
echo "parametre n°1=$parametre_1"

$ sh "affich parametre.sh" "hello   et   coucou"
> je suis le script: affich parametre.sh
> Mon premier parametre est : hello   et   coucou
parametre n°1=hello   et   coucou

#14 Re : -1 »  script shell qui affiche parametre » Le 12/05/2013, à 21:39

pingouinux
Réponses : 8

Voir man cat. Cette commande affiche le script. Les " " sont indispensables car le nom du script contient un espace. De même, à l'intérieur du script, il faut mettre des " " autour des noms de variables pour les afficher (au cas où elles contiennent des espaces, comme le paramètre "hello   et   coucou" dans l'exemple du #2).

#15 Re : -1 »  Script shell (niveau débutant) » Le 12/05/2013, à 16:49

pingouinux
Réponses : 11

Bonjour,
Voir man ls (options -a, -C, -F)

#16 Re : -1 »  forcer cat à écrire sur une largeur max définie (résolu) » Le 08/05/2013, à 16:06

pingouinux
Réponses : 17

Bonjour,
La commande fold permet de limiter la longueur des lignes.
Pour obtenir des lignes d'au plus 40 caractères, par exemple :

fold -w 40 fichier

#17 Re : -1 »  [Résolu] Comment copier fichiers contenant telle chaine de caractère » Le 10/05/2013, à 16:10

pingouinux
Réponses : 4

Bonjour,

shopt -s globstar
mkdir /tmp/txt
for fic in /mnt/d/**/*.txt;do grep -q toto "$fic" && cp -p "$fic" /tmp/txt;done
mv /tmp/txt /mnt/d

#18 Re : -1 »  (RÉSOLU) sh : exécution d'une commande dans une variable - boucle for » Le 08/05/2013, à 15:22

pingouinux
Réponses : 12

Bonjour,
Essaye ceci :

SAVE_COMMAND="for dir in $dirs_orig_table; do { rsync -rltgoDv --del --ignore-errors --force \$dir $dirs_dest ;}; done"
sh -c "$SAVE_COMMAND" || exit 1

#19 Re : -1 »  Quand je double click sur un ".sh" ça se lance avec gedit aulieu de... » Le 04/05/2013, à 17:19

pingouinux
Réponses : 8

Bonjour,
Quelle est la première ligne du script ?
Le lances-tu ainsi, après t'être placé dans le bon répertoire ?

./le_nom_du_script

ou

bash le_nom_du_script

#22 Re : -1 »  [✓]Trouver le chemin d'accès complet d'un dossier ou d'un fichier » Le 07/05/2013, à 08:56

pingouinux
Réponses : 13

Bonjour,
Pour avoir le chemin complet d'un fichier ou dossier :

$ touch toto

$ readlink -f toto
/tmp/toto

$ readlink -f ./toto
/tmp/toto

$ readlink -f /tmp/toto
/tmp/toto

#23 Re : -1 »  [✓]Trouver le chemin d'accès complet d'un dossier ou d'un fichier » Le 07/05/2013, à 14:24

pingouinux
Réponses : 13
FelixP   #8 a écrit :

dirname donne toujours le chemin absolu du fichier

Pas du tout. Ceci n'est pas un chemin absolu

$ dirname .bashrc
.

contrairement à cela

$ readlink -f .bashrc
/home/moi/.bashrc

ou bien

$ dirname "$(readlink -f .bashrc)"
/home/moi

#24 Re : -1 »  [✓]Trouver le chemin d'accès complet d'un dossier ou d'un fichier » Le 07/05/2013, à 19:05

pingouinux
Réponses : 13

Voilà pourquoi

$ touch "aaa    bbb"

$ for i in `ls aaa*`;do echo "$i";done
aaa
bbb