Вы можете использовать старый синтаксис [
if [ -n "$ENV" -a "$ENV" = 'production' ]
(обратите внимание, что я использовал -n
, а не ]! -z
, потому что он читается проще, но это то же самое).
Или мы можем упростить до еще более старого синтаксиса, заставив строку иметь значение:
if [ "x$ENV" = 'xproduction' ]
Наконец, тест -n
может действительно не понадобиться, и вы можете просто выполнить
if [ "$ENV" = 'production' ]
uuencode test.txt test_attachment.txt | mailx **-m** -s 'testing' mail@mail.com
echo "\
Subject: My Email Subject at `date \"+%m/%d/%Y %r UTC\"`
MIME-Version: 1.0
Content-type: multipart/mixed; boundary="^A^A^A^A^A"
Content-Transfer-Encoding: 7bit
--^A^A^A^A^A
Content-Type: text/plain; charset=US-ASCII; name="BDY.TXT"
Content-Disposition: inline; filename="BDY.TXT"
Content-Transfer-Encoding: 7bit
My Email Subject at `date \"+%m/%d/%Y %r UTC\"`
--^A^A^A^A^A
Content-Type: text/plain; charset=US-ASCII; name="ZIP_FILE"
Content-Disposition: attachment; filename="ZIP_FILE"
Content-Transfer-Encoding: 7bit
" > /tmp/ZIP_FILE
cat /tmp/MySourceZipFile >> /tmp/ZIP_FILE
echo "
--^A^A^A^A^A--" >> /tmp/ZIP_FILE
/usr/sbin/sendmail "GodSend@Heaven.godcom" < /tmp/ZIP_FILE
Почти 2 года спустя, но... кажется, что uuencode или почта не работают в Linux. Или, может быть, он работает правильно, но Outlook не работает. Кто знает?
uuencode a.gz a.gz | mail -s "тестирование uuencode из linux" me@domain.com
uuencode a.gz a.gz | mail -s "тестирование uuencode from aix" me@domain.com
При отправке из Linux Outlook показывает встроенный код uuencode. Отправка из AIX отображается в Outlook как вложение. Та же команда, тот же почтовый ретранслятор, другая ОС, разные результаты. О, может быть, это sendmail (aix )vs postfix (linux )? В любом случае, делайте выводы о месте поломки сами.
О, чтобы дать реальный ответ... mailx -a.gz -s "subject" me@domain.com