Forum Clubic

Bash scripting

bonjour,

j’aimerai savoir si UBUNTU interprete les scripts en bash?
Si oui pouvez vous m’aider a trouver l’erreur dans le script suivant svp

le but est juste de remplacer la commande cp -pR source destination
en creer un repertoire de destination en prenant le soin de changer les permissions a 777 pour le repertoire et le fichier.

donc pour executer le script ca devrait donner
sh xxcopy [chemin source] [chemin arrivee] [ dossier de dest] [fichier]

#!\bin/bash
boolLoop=“true”
while [ $boolLoop = “true” ]
do
clear
echo “this program takes 4 arguments and is executed as follows:”
echo " sh xxcopy [source path ] [ destination path] [ destination directory] [ file name]"
echo
echo “the source path is: $1”
echo “the destination path is: $2”
echo “the destination directory is: $3”
echo “the file name is: $4”
echo -n “Do you want to continue (y/n)?”
read userInput
tmp=$( (echo -n $userInput | tr [:upper:] [:lower:] ) )
case $tmp in

[Yy] | “yes”)
BoolLoop=“false”
;;
[Nn] | [“no”])
Echo “Exit program”
Exit 0
;;
*) boolLoop=“true”
esac
done
clear
mkdir $2"/"$3
echo “Destination directory created”
echo “the command executed is: cp -pR $1”/"$4 $2"/"$3"/"$4
cp -pR $1"/"$4 $2"/"$3"/"$4
echo “copy completed”
chmod -R 777 $2"/"$3
echo “The destination file permissions have been changed to:”
ls -l $2"/"$3

Quel est ton erreur ?

Oui Unbuntu permet d’interpreter les scripts bash.
Mais imaginons que ton fichiers script.sh soit dans /home/name/, dans ce cas, pour éxecuter le script, il faut que /home/name/ soit dans la variable PATH.
D’habitude, on ajoute “.” qui représente le répertoire courant.

Pour faire cela, tape ceci dans un terminal :

PATH=$PATH:.

Déjà, chmod +x xxcopy
Ensuite, ./xxcopy …

Et puis remplace ton mkdir *2/$3 (pas besoin de guillemets) par mkdir -p $2/$3, c’est plus efficace.

voici mon erreur:

www.mailbigfile.com…

Si jai bien compri, tu penses que je devrais passer en parametre les chemins absolus, cad le chemin entier au lieu de " ./ " ?

Gné ?
Elle est bizarre ton erreur, tu as bien un fichier /bin/bash ? Oui ?

J’ai!

www.mailbigfile.com…

la première ligne ne me semble pas correct, si je m’en refere à : www.graoulug.org…

la premiere ligne, #!/bin/bash (sur le script original c bien un / et pas \ avant le bin), est bel et bien correcte!

Oui elle est correcte, on le voit sur son screenshot.