Quindi ho bisogno di controllare se il nome utente del destinatario è in/etc/passwd che contiene tutti gli utenti della mia classe, ma ho provato alcune combinazioni diverse di istruzioni if e grep senza successo. Il meglio che ho trovato è sotto, ma non penso che funzioni correttamente. La mia logica è che se grep è nullo, l'utente non è valido.Come verificare se grep non ha output?
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
}
se non si desidera mantenere risultato – RousseauAlexandre
Come può essere combinata con una prova di valore di una variabile maggiore di 0? qualcosa come 'se grep -q $ indirizzo/etc/passwd && $ val> 0' –