W ramach tego skryptu muszę być w stanie sprawdzić, czy pierwszy podany argument pasuje do pierwszego słowa pliku. Jeśli tak, wyjdź z komunikatem o błędzie; jeśli nie, dołącz argumenty do pliku. Rozumiem, jak napisać if
instrukcję, ale nie wiem, jak jej używać grep
w skrypcie. Rozumiem, że grep
będzie to wyglądać mniej więcej tak
grep ^$1 schemas.txt
Wydaje mi się, że powinno to być znacznie łatwiejsze niż robię.
Występuje błąd „zbyt wiele argumentów” w if
instrukcji. Pozbyłem się miejsca między, grep -q
a następnie wystąpił błąd, którego oczekiwał operator binarny.
if [ grep -q ^$1 schemas.txt ]
then
echo "Schema already exists. Please try again"
exit 1
else
echo "$@" >> schemas.txt
fi
[
…]
i to zadziała. Chociaż prawdopodobnie chcesz zacytować swój wzór:if grep -q "^$1" schemas.txt; then …