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 21/07/2010, à 01:46

tiof

afficher la presence de un ou deux fichier

salut,

je voudrais faire un script, mais ca commence mal, voici, l'exemple qui ne fonctionne pas


if ls -1 | sed 1d
then
echo 2fichier
else
echo 1fichier
fi

je voulais que si deux fichiers dispo il me le signale, donc je fais un ls et je retire la premiere ligne pour savoir si il y a deux fichiers.
Mais ca marche pas...

Donc j'aimerais savoir comment le faire sans donner de nom de fichier

merci

Hors ligne

#2 Le 21/07/2010, à 01:51

NooP

Re : afficher la presence de un ou deux fichier

#!/bin/bash

COUNT=`ls -1 | wc -l`

if [ $COUNT -gt 1 ]; then
  echo "Plus de 1 fichiers trouvés"
fi

Votez Macron, vous l'aurez dans le fion !

Hors ligne

#3 Le 21/07/2010, à 02:07

tiof

Re : afficher la presence de un ou deux fichier

merci beaucoup smile

Hors ligne

#4 Le 21/07/2010, à 07:22

Watael

Re : afficher la presence de un ou deux fichier

je retire la premiere ligne pour savoir si il y a deux fichiers.

pourquoi ?

une solution tout bash

#!/bin/bash

shopt -s nullglob

dir="${1:-.}"
Fichiers=( $dir/* )
n=${#Fichiers[@]}

(( n )) && {
   (( n >= 2 )) && echo "il y a deux fichiers, ou plus" || {
      (( n < 2 )) && echo "il y a un fichier"
   }
} || echo "il n'a pas de fichier"

en clair

#!/bin/bash

shopt -s nullglob

dir="${1:-.}"
Fichiers=( $dir/* )
n=${#Fichiers[@]}

if [ -n "$n" ]; then
   if [ $n -ge 2 ]; then
      echo "il y a deux fichiers, ou plus"
   elif [ $n -lt 2 ]; then
      echo "il y a un fichier"
   fi
else
   echo "il n'y a pas de fichier"
fi

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

En ligne

#5 Le 22/07/2010, à 09:01

nesthib

Re : afficher la presence de un ou deux fichier

sinon la méthode simple et éprouvée :

if [ "$(ls -A /chemin/vers/mon/dossier/)" ]; then
    echo "dossier non vide"
else
    echo "dossier vide"
fi

ou encore

[ "$(ls -A /chemin/vers/mon/dossier/)" ] && echo "dossier non vide" || echo "dossier vide"

NB. le test […] vérifie simplement si la chaîne entre "…" existe ou non


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne