pour me me faciliter des choses je veux définir une action que je peux connecter aux archives *.7z dans le rox-filer. J'ai alors un script que je vais exécuter dans un terminal-emulator, qui va me décomprimer immédiatement son premier argument $1 dans le même dossier, où se trouve déjà l'archive.
Sauf, ça ne marche pas comme prévu. J'ai cherché dans le Web, mais je ne trouve pas la faute dans mon script. Je l'ai déjà pas mal modifié afin d'apprendre ce qu'il se passe, mais je ne comprends pas. Voici ce que je veux discuter avec vous:
- Code: Tout sélectionner
#!/bin/bash
#
# expands the archive-file from the first argument
# to the same directory, that the archive is found in.
#
if [ ! -f "$1" ]
then
echo -e "$1 does not exist or is not a file"
# sleep is needed as the script will run in another
# instance of the terminal-emulator (`xterm -e`)
sleep 3
exit 2
fi
# In most cases, this should suffice to determine an absolute
# path in the file-system
cd `dirname "$1"`
DIR=`pwd`
# construct an absolute filepath, to be on the safe side.
ARC=`basename $1`
ARC="$DIR/$ARC"
CMD="/usr/bin/7z x -o $DIR/$ARC"
# e ou x, ça ne change rien.
# CMD="/usr/bin/7z e -o $DIR/$ARC"
echo -e "archive is $ARC,\ntarget directory $DIR,\ncommand $CMD"
# comment when found useable.
$CMD
# for the time unused: call in a separate instance of the
# terminal-emulation.
#roxterm -e "$CMD"
Le résultat de l'execution est toujours le même: fichier et dossier sont correct, la commande semble être correcte aussi, mais:
Error:
Incorrect command line
Je suis un peu triste.
[Modifs: Outre Rhin/Français et bêtise: Ne composez jamais des scripts que vous voulez en vérité COPIER et COLLER !(AAAAAAaaahh!!!), pas d'espace entre "$DIR" et "$ARC". Voir prochain commentaire.
-
versleouest
- Messages : 117
- Géo : France, Basse-Normandie, Canton Carrouge