|
|
|
|
Bonjour, je devellope un script shell qui doit émuler les les fonctionalité simple d'une base de donnée mais 2 probléme se pose a moi je vous les expose
Probléme n°1 :
Voila mon script :
#!/bin/sh
file=sh.db
usage()
{
echo "bdsh.sh [-k] [-f <db_file>] (put (<clef> | $<clef>) (<valeur> | $<clef>) |
del (<clef> | $<clef>) [<valeur> | $<clef>] |
select [<expr> | $<clef>] )"
}
while getopts k:f: option
do
case $option in
f) file="$OPTARG"
shift 2
;;
k) echo lol;;
esac
done
check()
{
echo "FONCTION SELECT"
if [ $1 = "select"]
then
echo "lol"
fi
}
check
exit 0
et quand je l'éxécute
$> sh bdsh.sh -f lol select
FONCTION SELECT
[: 33: missing ]
Pourriez vous me dire a quoi correspond [: 33: missing ] ?
problème n°2 :
est t'il possible via un sed ou un grep de rediriger le résultat dans le mếme fichier que celui sur lequel j'éffectue le traitement ?
exemple
Je veux supprimer les lignes contenant le mot bonjour dans le fichier test
le fichier test :
lol
Bonjour
oki
ma ligne de commande :
$> sed '/Bonjour/d' test
lol
oki
$>
$> sed '/Bonjour/d' test > test
$>
le fichier test devient vide
auriez vous une technique sans fichier intermédiaire pour rediriger le résultat dans le fichier sans en effacer tout le contenu ?
merci d'avance
Configuration: Linux Firefox 3.0.14
Salut,
if [ $1 = "select" ] et il vaut mieux aussi entourer chaque variable par des quotes doubles (sauf emploi des doubles crochets : if [ "$1" = "select" ] ou if [[ $1 = "select" ]] Pour le 2 : sed -i.bak '/Bonjour/d' test Voir à ce sujet dans la FAQ : Sed - Introduction à SED - Part I Sed - Introduction à SED - Part II Sed - Introduction à SED - Part III $ man woman Il n'y a pas de page de manuel pour woman. |