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 17/08/2009, à 14:16

sdblepas

rendre un script executable depuis n'importe ou [resolu]

Salut j'ai tourver deux script sur le net (que je vous conseille)
Le premier permet d'utiliser dir au lieu de ls
:
#!/bin/sh
#  DIR - pretend we're the DIR command in DOS and display the contents
#    of the specified file, accepting some of the standard DIR flags

usage()
{
cat << EOF >&2
  Usage: $0 [DOS flags] directory or directories
  Where:
   /D           sort by columns
   /H           show help for this shell script
   /N           show long listing format with filenames on right
   /OD          sort by oldest to newest
   /O-D         sort by newest to oldest
   /P           pause after each screenful of information
   /Q           show owner of the file
   /S           recursive listing
   /W           use wide listing format
EOF
  exit 0
}

postcmd=""
flags=""

while [ $# -gt 0 ]
do
  case $1 in
    /D     ) flags="$flags -x"          ;;
    /H     ) usage                      ;;
    /[NQW] ) flags="$flags -l"          ;;
    /OD    ) flags="$flags -rt"         ;;
    /O-D   ) flags="$flags -t"          ;;
    /P     ) postcmd="more"             ;;
    /S     ) flags="$flags -s"          ;;
         * ) # unknown flag: probably a dir specifier
                break;  # so let's get outta the while loop
  esac
  shift       # processed flag, let's see if there's another
done

# done processing flags, now the command itself:

if [ ! -z "$postcmd" ] ; then
  ls $flags "$@" | $postcmd
else
  ls $flags "$@"
fi
exit0

le deuxieme showfile il montre un fichier a l' ecren
#!/bin/sh
# showfile - show the contents of a file, including additional useful info

width=72

for input
do
  lines="$(wc -l < $input | sed 's/ //g')"
  chars="$(wc -c < $input | sed 's/ //g')"
  owner="$(ls -ld $input | awk '{print $3}')"
  echo "-----------------------------------------------------------------"
  echo "File $input ($lines lines, $chars characters, owned by $owner):"
  echo "-----------------------------------------------------------------"
  while read line
    do
      if [ ${#line} -gt $width ] ; then
        echo "$line" | fmt | sed -e '1s/^/  /' -e '2,$s/^/+ /'
      else
        echo "  $line"
      fi
    done < $input

  echo "-----------------------------------------------------------------"

done | more

exit 0

Ma question est la suivante
dir est executable depuis n'importe ou dans mon terminal mais showfile ne marche que dans le fichier ou ll est range.
que faudrait il que j'y rajoute pour qu'il marche depuis n'importe ou
Merci

Dernière modification par sdblepas (Le 18/08/2009, à 05:45)

Hors ligne

#2 Le 17/08/2009, à 14:33

iuchiban

Re : rendre un script executable depuis n'importe ou [resolu]

Oula, ca se sont des scripts de windowsiens car tu peux remplacer ls par dir avec un alias par exemple :

alias dir='ls -l'

Et ton showfile, bah le owner tu l'as en faisant

ls -l

et ensuite nombre de lignes / caractères :

wc -l <Fichier>
wc -c <Fichier>

Sinon, si tu as un script que tu veux pouvoir utiliser de partout :
- soit tu crées un alias qui lance le script
- soit tu rajoutes un lien symbolique dans /usr/bin
- soit tu modifies ton PATH pour ajouter le chemin où se trouve ton script.


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

#3 Le 17/08/2009, à 14:36

sdblepas

Re : rendre un script executable depuis n'importe ou [resolu]

Merci

Hors ligne

#4 Le 17/08/2009, à 19:43

Link31

Re : rendre un script executable depuis n'importe ou [resolu]

iuchiban a écrit :

Oula, ca se sont des scripts de windowsiens car tu peux remplacer ls par dir avec un alias par exemple :

alias dir='ls -l'

Même pas besoin, "dir" est déjà une commande... smile

Hors ligne