Ich versuche, ein Skript zu schreiben, das prüfen muss, ob eine Datei vorhanden ist. In die Konsole schreibe ich
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
und ich verstehe
not mod
aber wenn ich ein Skript schreibe, um dasselbe zu tun:
#!/bin/sh
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
und dann das Skript ausführen, bekomme ich Folgendes:
./ex.sh: 2: [[: not found
mod
Ich habe das Skript im aktuellen Verzeichnis gespeichert und ex.sh genannt und dann sichergestellt, dass es ausführbar ist. So rufen Sie das Skript auf:
./ex.sh
Warum bekomme ich dieses Problem? Ich habe schon viele Dinge ausprobiert:
if [ -a /home ...
und
if test -a /home ...
Beide kehren zurück
13: -a: unexpected operator
#!/bin/bash