J'essaie d'écrire un script qui doit vérifier si un fichier existe. Dans la console j'écris
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
et je reçois
not mod
mais quand j'écris un script pour faire la même chose:
#!/bin/sh
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
puis exécuter le script, j'obtiens ceci:
./ex.sh: 2: [[: not found
mod
J'ai enregistré le script dans le répertoire courant et l'ai nommé ex.sh, puis je me suis assuré qu'il était exécutable. Pour appeler le script, je fais ceci:
./ex.sh
Pourquoi ai-je ce problème? J'ai déjà essayé beaucoup de choses:
if [ -a /home ...
et
if test -a /home ...
Tous les deux reviennent
13: -a: unexpected operator
#!/bin/bash