Als Teil dieses Skripts muss ich überprüfen können, ob das erste angegebene Argument mit dem ersten Wort der Datei übereinstimmt. Wenn dies der Fall ist, beenden Sie das Programm mit einer Fehlermeldung. Wenn dies nicht der Fall ist, hängen Sie die Argumente an die Datei an. Ich verstehe, wie man die ifAnweisung schreibt , aber nicht, wie man sie grepin einem Skript verwendet. Ich verstehe, das grepwird ungefähr so aussehen
grep ^$1 schemas.txt
Ich denke, das sollte viel einfacher sein, als ich es mache.
Ich erhalte die Fehlermeldung "zu viele Argumente" if. Ich habe den Zwischenraum entfernt grep -qund dann einen fehlerhaften Binäroperator erwartet bekommen.
if [ grep -q ^$1 schemas.txt ]
then
echo "Schema already exists. Please try again"
exit 1
else
echo "$@" >> schemas.txt
fi
[...]und es wird funktionieren. Obwohl Sie wahrscheinlich Ihr Muster zitieren möchten:if grep -q "^$1" schemas.txt; then …