Les options doivent être avant les paramètres 'classique'
#!/bin/bash #On met les options à false optA=false; optB=false; #Définion de la commande cmd="ls"; #Check des options while true do case "$1" in -a) echo "option a" opta=true cmd+=" -a" #bien penser à l'espace shift ;; -b) echo "option b" optb=true cmd+=" -b" shift;; *) break;; esac done echo "$cmd" #affiche ls -a -b si les deux options sont présentes if [[ ! -z "$1" ]] then echo "$1"; else echo "pas de paramètre" fi
#!/bin/bash repertoire="/home/pillow/" cmd="ls $repertoire" files_folders=$($cmd) folders=() #déclaration tableau vide echo $files_folders #sortie de ls for file in $files_folders do if [[ -d $repertoire$file ]] && [[ -e $repertoire$file ]] && [[ "$file" != "." ]] && [[ "$file" != ".." ]] then folders+=("$repertoire$file") #ajout à la fin du tableau fi done echo "Nombre de répertoires : ${#folders[@]}" files_array=(${files_folders// /}) # transforme la string en tableu avec ' ' comme séparateur echo $files_array echo "Nombre de fichiers et répertoires : ${#files_array[@]}" echo $repertoire${files_array[0]}
Motif de base :
find /repertoire -type f -name “*.log” -exec rm {} \;
Conditions possibles :
(c ⇒ octets, k ⇒ ko, M ⇒ Mo, G ⇒ Go)