Bash linux

di il
2 risposte

Bash linux

Ciao! Volevo far eseguire questo file, in cui ho fatto un ciclo che controlla se effettivamente passo dal terminale 3 parametri, e un altro ciclo che controlla se effettivamente il primo parametro passato sia un file. Però mi esce questo RIGA 10: atteso operatore unitario. Non capisco cosa significhi o comunque il codice sottostante mi sembra abbastanza corretto. Qualcuno ha capito il perchè?
#!/bin/bash


if [ $# -ne 3 ]; then

exit 1

fi

if [ !-f "$1" ]; then

exit 2

fi

echo "vai"

exit 0

2 Risposte

  • Re: Bash linux

    Devi mettere uno spazio fra il punto esclamativo e il -f; inoltre puoi mettere $1 senza virgolette:
    if [ ! -f $1 ]; then
    
    exit 2
    
    fi
    infine, attenzione, le if non sono cicli!!!
  • Re: Bash linux

    Ho capito, grazie mille!!
Devi accedere o registrarti per scrivere nel forum
2 risposte