Θα ήθελα το σενάριό μου Bash να εκτυπώνει ένα μήνυμα σφάλματος εάν δεν πληρείται ο απαιτούμενος αριθμός ορίων.
Δοκίμασα τον ακόλουθο κώδικα:
#!/bin/bash
echo Script name: $0
echo $# arguments
if [$# -ne 1];
then echo "illegal number of parameters"
fi
Για κάποιο άγνωστο λόγο έχω το ακόλουθο σφάλμα:
test: line 4: [2: command not found
Τι κάνω λάθος;
Ακριβώς όπως κάθε άλλη απλή εντολή, η [ ... ]
ή η test
απαιτεί κενά μεταξύ των ορίων της.
if [ "$#" -ne 1 ]; then
echo "Illegal number of parameters"
fi
Ή
if test "$#" -ne 1; then
echo "Illegal number of parameters"
fi
Όταν βρίσκεστε σε Bash, προτιμήστε τη χρήση του [[ ]]
, καθώς δεν κάνει διαχωρισμό λέξεων και επέκταση ονομάτων διαδρομής στις μεταβλητές του που η παράθεση δεν είναι απαραίτητη, εκτός αν είναι μέρος μιας έκφρασης.