Pages : 1
#1 Le 03/09/2012, à 14:46
- KnY
Aide pour script
Bonjour,
Je débute l'écriture de petits scripts pour me faciliter la vie, mais je bloque sur des choses qui doivent certainement vous paraître très bêtes:
#!/bin/bash
COLORS='-nb #1A1B1D -nf #1A7BD5 -sb #1A7BD5'
DMENU='dmenu -i -b'
PROMPT='-p [Fls]'
SRC=$HOME/Documents/Images/
ls $SRC | $DMENU $COLORS $PROMPT | xargs feh
Ce que je désire, c'est lister des fichiers image ( dossier $SRC ) avec dmenu, et ouvrir ce fichier avec feh.
En l'état, ce qui est passé en argument à feh, c'est uniquement le nom de fichier.
Or il faudrait lui passer le chemin absolu. J'ai pensé à faire:
... | xargs feh $SRC #en vérité, pour tester, je fais un echo
Mais cela me mets un espace entre le chemin absolu et les résultat de dmenu transmis par xargs
Plus encore, je ne sais pas comment remplacer les espaces par des espaces protégés par un antislash, pour que feh puisse lire le fichier s'il en contient.
# Par exemple, que:
Un nom de fichier avec des espaces.jpg
# soit protégés comme suit:
Un\ nom\ de\ fichier\ avec\ des\ espaces.jpg
En vous remerciant.
Hors ligne
#2 Le 03/09/2012, à 16:17
- KnY
Re : Aide pour script
Bon je me réponds en partie
#!/bin/bash
COLORS='-nb #1A1B1D -nf #1A7BD5 -sb #1A7BD5'
DMENU='dmenu -i -b'
PROMPT='-p [Fls]'
SRC="$HOME/Documents/Images/"
cd $SRC
ls | $DMENU $COLORS $PROMPT | xargs feh
Mais maintenant, comment échapper les éventuels espaces avant de passer à feh?
EDIT
Je finis de répondre à ma seconde question; il suffit d'utiliser l'argument -0 avec xargs:
#!/bin/bash
COLORS='-nb #1A1B1D -nf #1A7BD5 -sb #1A7BD5'
DMENU='dmenu -i -b'
PROMPT='-p [Fls]'
SRC="$HOME/Documents/Images/"
cd $SRC
ls | $DMENU $COLORS $PROMPT | xargs -0 feh
Dernière modification par KnY (Le 03/09/2012, à 16:38)
Hors ligne
Pages : 1