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 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