Also muss ich überprüfen, ob der Empfänger Benutzername in/etc/passwd ist, die alle Benutzer in meiner Klasse enthält, aber ich habe ein paar verschiedene Kombinationen von if-Anweisungen und grep mit keinem Erfolg versucht. Das Beste, was ich mir vorstellen kann, ist unten, aber ich denke nicht, dass es richtig funktioniert. Meine Logik dahinter ist, dass wenn der Grep null ist, der Benutzer ungültig ist.Wie überprüft man, ob Grep keine Ausgabe hat?
send_email()
{
message=
address=
attachment=
validuser=1
until [ "$validuser" = "0" ]
do
echo "Enter the email address: "
read address
if [ -z grep $address /etc/passwd ]
then
validuser=0
else
validuser=1
fi
echo -n "Enter the subject of the message: "
read message
echo ""
echo "Enter the file you want to attach: "
read attachment
mail -s "$message" "$address"<"$attachment"
done
press_enter
}
simplier Lösung, wenn Sie Ergebnis nicht behalten wollen – RousseauAlexandre
Wie das größer als 0 mit einem Test des Variablenwertes kombiniert werden kann? etwas wie 'if grep -q $ address/etc/passwd && $ val> 0' –