J'ai installé buntu bash sur ma machine Windows, je peux donc tester les scripts Linux en dehors du travail. J'ai créé un script très simple avec "hello world" de base et un répertoire de modifications (cd), mais lors de son exécution, il affiche hello world. Il fait une erreur sur le cd à la ligne de répertoire.
Voici l'erreur:
$ ./test.sh
hello world
zipping away
./test.sh: line 6: cd: $'/home/fjaffer/temp\r\r': No such file or directory
./test.sh: line 7: $'\r': command not found
ffr@DP-PC:~$
Mon script test.sh
est ci-dessous:
#!/bin/bash
echo "hello world"
echo "zipping away"
dir=/home/fjaffer/temp
cd $dir
S'il vous plaît donnez votre avis? Je vous remercie.
C'est parce que vous avez créé votre script sur une machine Windows, que \r
(retour à la ligne) a été ajouté à la fin de chaque ligne.
Supprimez-les comme ceci:
tr -d '\r' < test.sh > new-test.sh
Indiquez également la valeur de la variable:
cd "$dir"
puis lancez votre script:
./new-test.sh
Comme indice, il est également préférable d'utiliser:
cd ... || exit
en cas d'échec.
Configurez votre éditeur pour qu’il utilise le format Linux pour enregistrer les fichiers (s’il en est capable) ou utilisez un éditeur bash comme nano
name__:
Une autre option consiste à utiliser la commande dos2unix
pour convertir le fichier au format de type Unix.
Usage:
dos2unix your_file