Forum Programmation.shell Interface Web locate

Posté par  .
Étiquettes : aucune
0
29
août
2005
Salut,

j'essaie d'écrire un script CGI pour la commande locate afin que tout le monde puisse facilement chercher un fichier par l'intermediaire d'une interface Web.

Pour l'instant j'ai ecris ca

#!/bin/sh
echo "Content-type: text/html"
echo -e "\\n"
echo \<HTML\>\<HEAD\>\<TITLE\>Recherche de $1\<\/TITLE\>
echo \<\/HEAD\>\<BODY\>
echo \<h1\>R\&eacute\;sultat de la recherche de $1\<\/h1\>

for i in `locate $1`
do
echo \<a href=\"file:$i\"\>$i\<\/a\>
#echo \<a href=\"$i\"\>$i\<\/a\>
echo \<br\>
done


date
echo -e "\\n"
echo \<\/BODY\>
echo \<\/HTML\>

Ca marche pas mal, mais quand les fichiers et/ou repertoire contiennent des espaces, ca marche pas aussi bien, chaque espace entraine un changement de lignes.
Quelqu'un aurait-il une idee pour resoudre ce probleme.

D'avance merci.
  • # utiliser read

    Posté par  . Évalué à 6.

    Tu peux remplacer
    for i in `locate $1`
    par
    locate $1 | while read i
    le 'read' va affecter une ligne complète à 'i' même si elle contient des espaces.
  • # Ouai

    Posté par  . Évalué à 1.

    Question bête mais comment utiliser le script? J'esseye de le lancer:

    [jul@darkstar:~] $ .locate_web
    Content-type: text/html


    Recherche de

    Résultat de la recherche de
    Secure Locate 2.7 - Released January 24, 2003



    Copyright (c) 1999, 2000, 2001 Kevin Lindsay & Netnation Communications Inc. &

    James A. Woods <jwoods@adobe.com>



    search usage: locate [-qi] [-d ] [--database=] <search string>...

    locate [-r ] [--regexp=]

    database usage: locate [-qv] [-o ] [--output=]

    locate [-e <dir1,dir2,...>] [-f <fs_type1,...> ] [-l ]

    [-c] <[-U ] [-u]>

    general usage: locate [-Vh] [--version] [--help]



    Options:

    -u - Create slocate database starting at path /.

    -U - Create slocate database starting at path .

    -c - Parse original GNU Locate's '/etc/updatedb.conf'

    when using the -u or -U options. If 'updatedb' is

    symbolically linked to the 'locate' binary, the

    original configuration file will automatically be

    used.

    -e <dir1,dir2,...> - Exclude directories from the slocate database when

    using the -u or -U options.

    -f <fs_type1,...> - Exclude file system types from the slocate database

    when using the -u or -U options. (ie. NFS, etc).

    -l - Security level.

    0 turns security checks off. This will make

    searchs faster.

    1 turns security checks on. This is the default.

    -q - Quiet mode. Error messages are suppressed.

    -n - Limit the amount of results shown to .

    -i - Does a case insensitive search.

    -r

    --regexp= - Search the database using a basic POSIX regular

    expression.

    -o

    --output= - Specifies the database to create.

    -d

    --database= - Specfies the path of databases to search in.

    -h

    --help - Display this help.

    -v

    --verbose - Verbose mode. Display files when creating database.

    -V

    --version - Display version.



    Author: Kevin Lindsay

    Bugs: klindsay@mkintraweb.com

    FTP: ftp://ftp.geekreview.org/slocate/(...)

    ftp://ftp.mkintraweb.com/pub/linux/slocate/(...)

    HTTP: http://www.geekreview.org/slocate/(...)



    mar sep 27 00:53:45 CEST 2005





    La console m'affiche sa dans la console.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.