retour
Voir
#!/bin/bash
# ver pour voir ou modifier un fichier
#utilisation de getopts les options avec -
# si on a les couleurs on les utilise
if [ -f $(dirname $0)/echo_couleur.sh ]
then
. echo_couleur.sh
aff=cecho
else
aff=echo
fi
aide()
{
$aff " Les options de voir " $vert
$aff "0) sans option affiche avec cat les fichiers de moins de 24 lignes" $bleu
$aff " les fichiers de plus de 24 lignes sont affichés avec less " $bleu
$aff "-h) affiche cette aide" $rouge
$aff "-n nb) On peut changer le nombre de lignes; nb contient ce nombre" $jaune
$aff "-c) force l'utilisation de cat" $cyan
$aff "-l) force l'utilisation de less" $blanc
$aff "-d) n'affiche pas les lignes de commentaires" $magenta
$aff "-v) n'affiche pas les lignes vides " $bleu
$aff " Les arguments de voir : il faut mettre un fichier " $vert
$aff " Exemple voir -d -v voir "
}
message=$(echo " Il faut un argument, essayez : voir -h ")
: ${1:?$message}
while getopts ":hceldvn:" option
do
case $option in
h) aide
exit 0 ;;
c) cmd=cat ;;
e) cmd=vim ;;
l) cmd=cat
tube="$tube |less " ;;
d) tube="$tube | sed -e '/^ *#[^!]/d' " ;;
v) tube="$tube | sed -e '/^$/d' " ;;
n) nb=$OPTARG ;;
*) echo "l'option $1 n'existe pas"
aide
exit 0 ;;
esac
done
shift $(($OPTIND -1))
if [ -z $cmd ]
then
max_lignes=${nb:=24}
lignes=$(cat $1 |wc -l)
cmd=cat
if [ $lignes -gt $max_lignes ]
then tube="$tube |less"
fi
fi
eval "$cmd $1 $tube"
echo "La commande était : $cmd $1 $tube"
exit 0