Bir dosya olup olmadığını kontrol etmek zorunda olan bir komut dosyası yazmaya çalışıyorum. Konsolda yazıyorum
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
ve anladım
not mod
ama aynı şeyi yapmak için bir senaryo yazdığımda:
#!/bin/sh
if [[ -a /path/to/file.txt ]]; then echo "not mod"; else echo "mod"; fi
ve sonra komut dosyasını yürütmek, bunu elde:
./ex.sh: 2: [[: not found
mod
Komut dosyasını geçerli dizine kaydedip ex.sh olarak adlandırdım, sonra çalıştırılabilir olduğundan emin oldum. Komut dosyasını çağırmak için şunu yapıyorum:
./ex.sh
Bu sorunu neden alıyorum? Zaten birçok şey denedim:
if [ -a /home ...
ve
if test -a /home ...
İkisi de geri döndü
13: -a: unexpected operator
#!/bin/bash