Sto cercando di scrivere uno script che deve verificare se esiste un file. Nella console scrivo
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
e ho capito
not mod
ma quando scrivo una sceneggiatura per fare la stessa cosa:
#!/bin/sh
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
e quindi eseguo lo script, ottengo questo:
./ex.sh: 2: [[: not found
mod
Ho salvato lo script nella directory corrente e l'ho chiamato ex.sh, quindi mi sono assicurato che fosse eseguibile. Per chiamare lo script faccio questo:
./ex.sh
Perché sto riscontrando questo problema? Ho già provato molte cose:
if [ -a /home ...
e
if test -a /home ...
Tornano entrambi
13: -a: unexpected operator
#!/bin/bash