Wpis z mikrobloga

jak sprawdzic w IF czy czy zmienna ktora jest komenda faktycznie wyslala maila za pomoca mailx ?

Gdy zalacznik jest za duzy to warunek nie jest spelniony i mail nie wysyla sie. Da się to napisać? Rozumiem, ze kazde poprawne wykonanie komendy jest rowne 0 jestli mowimy o boolean? #bash #linux #aix
  • 12
$?


@lis6502: !/bin/bash

zmienna= $(echo "TO jest mail testowy" | mailx -s "Mail testowy" -a /katalog/plik2.txt JanKowalskii@wp.pl)

if [$? -ne 0]; then

echo "problem z wyslaniem maila" | mailx -s "Mail testowy" JanKowalski@wp.pl
else
echo "mail poszedl bez problemu" | mailx -s "Mail poszedl bez problemu" JanKowalski@wp.pl
fi
exit;

i w tym przypadku ciagle przychodzi mail "mail poszedl bez problemu" mimo iz warunek nie zostal spelniony bo z powodu duzego zalacznika
@lis6502: i wlasnie tak poprawilem potem usuwajac zmienna. Niestety dalej nie spelnia warunku a zwraca to co jest po ELSE ....

co w przypadku gdy w tle na systemie leci inny program i cos sobie podstawia pod $? ? nie komplikuje sie to z innym programem?
@lis6502: jak dam echo $? po echo "TO jest mail testowy" | mailx -s "Mail testowy" -a /katalog/plik2.txt JanKowalskii@wp.pl to zwraca mi 0 czyli tak jakby sie wykonała ta linia. NIe wiem czy on rozroznia potoki przed czyli to co jest przed | i po