Ich habe ein Bash-Skript, das ungefähr so aussieht:
#!/bin/bash
if [ $1 = "--test" ] || [ $1 = "-t" ]; then
echo "Testing..."
testing="y"
else
testing="n"
echo "Not testing."
fi
Ich möchte es also nicht nur mit ./script --test
oder ausführen können ./script -t
, sondern auch ohne Argumente (nur ./script
). Wenn ich das mit dem aktuellen Code mache, ist die Ausgabe anscheinend einfach:
./script: line 3: [: =: unary operator expected
./script: line 3: [: =: unary operator expected
Not testing.
Wie programmiere ich es also so, dass es ohne Argumente funktioniert, else
ohne den Fehler auszulösen? Was mache ich falsch?