$> set -o pipefail
$> fortune | head -1 > /dev/null && echo "ะะพะฒะตะทะปะพ!" || echo "ะั ะฟัะพะธะณัะฐะปะธ"
ะะพะฒะตะทะปะพ!
$> fortune | head -1 > /dev/null && echo "ะะพะฒะตะทะปะพ!" || echo "ะั ะฟัะพะธะณัะฐะปะธ"
ะั ะฟัะพะธะณัะฐะปะธ
แแฅ fortune
แแแ แแแแแ แแ แแแ แแแแก แแแ แแจแ exit(rand())
.
แฒจแแแแซแแแ แแแแฎแกแแ? แ แ แแ แแก แแฅ แชแฃแแ?
แแแ แแแฃแ-แแกแขแแ แแฃแแ แแแแแฎแแแแ
แแ แแแ แแแแแ แแแแแชแแแ แแ แฐแแแแแแแฃแแก แแแแแฎแแแ แกแแฃแแฃแแแก แฌแแ. แจแแแแแ FaxNET-แจแ แแแ แแแญแแกแแแแก แกแแญแแ แ แแแฎแแ แ แแแแแแแแ แแแแฃแแแแฃแ แ แแ แแแ แแแแก แจแแฅแแแ
Sendmail-แจแ แแ uucp/uupc-แจแ แจแแชแแแแแแแแ แแแแแแแแแแแก แฉแแแแ แฌแแแ แแแแแชแแแแแแแ แแแแแแขแ แฉแแแก แแแแแแแแแแก โแจแแชแแแแแแแก แกแแคแฃแซแแแแแแ แแแแฃแจแแแแแแกโ แกแแฅแแแจแ. แแแ แ แแ แแฅแแก แแ แแแแแก แแแขแแแแแจแ แฉแแซแแ แแแก, แแแแ แแ แแ แฐแแแแแแแแแก แแ แ แแแแ แ 10-14 แกแแแแแก แแแแแแแแแแแจแ แแแแ แซแแแ. แแแแขแแ แแแแฎแกแแแแ แแ แแฃแจแแ แแก แซแแแแ แแแชแแแแ แแกแแ แกแขแฃแแ แแ แแแฉแแ แแ.
TL;DR แแแกแฃแฎแ
แแแแฃแแแแฃแ แ head
แจแแฃแซแแแ แแแฎแฃแ แแ แแ แฎแ แแแ fortune
แแ แแแ แแฃแแแ แ แแแแ แช แแ แแแ แแแ แกแขแ แแฅแแแก แฌแแแแแแฎแแแก. แแฃ fortune
แแแแแกแชแแแก แแ แแแ แแแข แฎแแแก, แจแแแแแ แจแแกแแแแแแก แแแ แก write()
แแแแแ แฃแแแแก แจแแชแแแแแก แแ แจแแแขแงแแแแแแแก, แ แแ แแแแฎแแแแแแแ แแแแแแแ แแแแขแ แแแแแแแก. แแแแแก แแฎแ แแ, แแแฌแแ แแแแ แจแแชแแแแแแแก แคแ แแฎแแแแ แแแแฃแจแแแแแแ fortune
แแฅแแก แฃแคแแแแ แแกแแฎแแก แแก แกแแขแฃแแชแแ แแแแแก แแแกแแแแก แกแขแแขแฃแกแจแ. แแแ แ แแแกแขแแแแชแแแก แแแแ set -o pipefail
แแแฃแจแแแแแก || echo "ะั ะฟัะพะธะณัะฐะปะธ"
.
แแฃแแชแ, head
แจแแแซแแแแ แแ แแฃแแแ แแแ แแแแฆแฌแแแก แแแ แ แแแฎแฃแ แแ fortune
แแแแกแ แฃแแแแก แแแแแชแแแแแแก แแแแแขแแแแก. แแแ แ แแแฃแจแแแแแก && echo "ะะพะฒะตะทะปะพ!"
.
แฉแแแก แแ แ-แแ แ แแฆแแก GNUMakefile
echo '#define MDBX_BUILD_COMPILER "$(shell set -o pipefail; $(CC) --version | head -1 || echo 'Please use GCC or CLANG compatible compiler')"'
แแแแแแแแฃแ แแ แแแแ แแแแ
แแฅ แฉแแแฃแแแแ แแแแ --version
แแก แแแแแฎแแแ แแแ แแ แแก แแก แแ แแฃ แแแ แแแแขแ แแ แแ แแก แแฎแแ แแแญแแ แแแ, แฉแแกแแฃแแแ แกแขแฃแแ "แแแฎแแแ แแแแแแงแแแแ GCC แแ CLANG แแแแกแแแแแ แจแแแแแแแแแ".
แแแกแฌแแแก
#define MDBX_BUILD_COMPILER "lcc:1.23.20:Sep--4-2019:e2k-v3-linux Please use GCC or CLANG compatible compiler"
แแฃแแฌแ แคแแแแ แ แแ แแแฅแแแ, แแแจแแแแ แแ แแแชแแแ แฉแแแ แซแแแแ "แแแชแแแแ". แฃแคแ แ แแแขแแช, แแ แแแฅแขแ แฃแแแ แแแแ แฏแแ แแฅแแ แแแแแชแแแแ แแแแ แฃแกแแ แแ แแ แแแแแ แแแแกแฎแแแแแแฃแแ แแแกแขแ แแแฃแชแแแก แฅแแแจ, แแแ แจแแ แแก Alt. แกแฎแแแแแกแฎแแ แจแแแแแแแแแแแแ, GNU Make แแ bash-แแก แแแ แกแแแแแ. แแแแขแแ, แแ แแแแแแแ แแฅ แฉแแแ แจแแชแแแแแก แแแแแฎแแ.
แ แแแแกแแช แชแแแแแแแแ แแ แแแแแแแก แ แแแ แแแฃแชแแ แแแแก แแ/แแ แแแแก แแแแแแแก, แแฃ แ แ แฎแแแแแแ, แฃแคแ แ แฃแชแแแฃแ แ แ แแ แแแแฌแงแ.
แแ แซแแแแแแก แฎแแแแก แจแแแแชแแ:
echo "#define MDBX_BUILD_COMPILER '$(set -o pipefail; LC_ALL=C cc --version | head -1 || echo "Please use GCC or CLANG compatible compiler")'"
แแ แแแแแ แ แแก แแฌแแ แแแแแแ แแแแแขแแแแ แขแแฅแกแขแก, แแแ แ แแ แ... แฎแจแแ แแ แแ แ-แแ แแ แแแ แแแแขแ แกแแแแแแ แแแแฎแแแก แฉแแ แแแแแแ, แแแแ แแ แแฃ แฃแคแ แ แแแขแฎแแแก แแงแแแแแแแแ, แงแแแแแแแแก แแ แแแแก แแแแฆแแแ!
แ แ แแฅแแ แฃแแแ, strace
แกแฎแแแแ แจแแ แแก, แ แแแแ แช แแแแแกแแแแ แ แแแแแแงแแแ แแแแ strace
แฃแ แฉแแแแแ แแ แแแแ แแแแแแก.
แฒ แ แฎแแแแ?
- แแแแฃแแแแฃแ แ
head
แแฅแแก แฃแคแแแแ (แฃแคแ แ แกแฌแแ แแ, แแซแฃแแแแฃแแแช แแ) แแแฎแฃแ แแก แฌแแแแแฎแฃแแ แแ แฎแ, แ แแแแ แช แแ แฌแแแแแแฎแแแก แแแแฎแแแแแ แกแขแ แแฅแแแแแก. - แแแแแชแแแแ แแแแแ แแขแแ แ แแ แแแ แแแ-แฉแแแฌแแ แ (แแ แจแแแแฎแแแแแจแ
cc
) แจแแฃแซแแแ แ แแแแแแแแ แกแขแ แแฅแแแแก แแแแแญแแแ แแ แฃแคแแกแ แแแแก แแแแแแแแ แแ แแแแแ แแแ แแก แกแแจแฃแแแแแแwrite()
. - แแฃ แแแแแฎแแแแก แแฅแแแแ แแ แ, แ แแ แแแฎแฃแ แแก แแ แฎแ แแแแแก แแฎแ แแ, แแฌแแ แแแก แแฎแ แแแแ แฉแแฌแแ แแก แแแกแ แฃแแแแแแแ, แแแจแแ แแฌแแ แแแ แแแแฆแแแก แจแแชแแแแแก.
- แแฌแแ แแแก แแ แแแ แแแ แฃแคแแแแแแแกแแแ แแ แแแ แฃแแฃแแแแแแงแแคแก แแ แฎแแก แฉแแฌแแ แแก แจแแชแแแแแก แแ แแกแแฎแแแก แแแก แแแกแ แฃแแแแแก แแแแจแ.
- แแแกแขแแแแชแแแก แแแแ
set -o pipefail
แแแแกแแแแแแก แแแกแ แฃแแแแแก แแแแ แแฅแแแแ แแ แแแฃแแแแแแ (แแชแแแ แ) แแฃ แจแแแแแ แแ แแ แแก แแฃแแแแแแ แแแแแแฃแ แแ แแ แแแแแแแขแแแแ แแ แจแแแแแ แแก แแแฃแจแแแแแก|| echo "Please use GCC or CLANG compatible compiler"
.
แจแแแซแแแแ แแ แกแแแแแแแก แแแ แแแชแแแแ แแแแก แแแฎแแแแแ, แแฃ แ แแแแ แแฃแจแแแแก แแแแฌแแ แแก แแ แแแ แแแ แกแแแแแแแแแแ. แแแแแแแแแ, แแ แแแ แแแ แจแแแซแแแแ แจแแฌแงแแแก แแ แแแแ แแแแฃแ แแ (แแ แแแฃแแแแแแ/แจแแชแแแแแก แจแแฌแงแแแขแแก แกแขแแขแฃแกแแก แแแขแแแแขแฃแ แ แแแแแ แแ แแแแ), แแ write()
แแแแแ แฃแแแแก แแแแฎแแแแแแแ แแแแแแแ แแแแขแแก แฉแแฌแแ แแก แจแแแแแก แแ แแแงแแแแแฃแแแ errno = EPIPE
.
แแแ แแ แแก แแแแแแจแแแ?
แแฆแฌแแ แแ แจแแแแฎแแแแแจแ แชแแขแ แงแแแแแคแแ แ. แจแแชแแแแแก แแแแฃแจแแแแแ cc
(lcc:1.23.20:Sepโ4-2019:e2k-v3-linux) แแ แแ แแก แแแแแแขแ. แฎแจแแ แจแแแแฎแแแแแจแ แกแฏแแแก แกแแคแ แแฎแแแแ แจแแชแแแ, แแฃแแชแ แแก แแแแแแก แฃแแชแแ แฎแแ แแแแแแก แขแ แแแแชแแฃแแ แฅแชแแแแกแแแแก แแแแแฃแแแแแแ แฅแแแแแก แคแแ แคแแขแแจแ.
แ แ แฃแแแ แแแแแแแแแ?
แแ แแกแฌแแ แ:
fortune | head -1 && echo "ะะพะฒะตะทะปะพ, ะฝะพ ะฒั ัะธัะบัะตัะต!" || echo "WTF?"
แกแฌแแ แแ:
-
(fortune && echo "ะฃัะฟะตัะฝะพ" || echo "ะัะธะฑะบะฐ") | head -1
แแฅ, แแแแแก แแแ แแฃแ แแแฎแฃแ แแแก แแฎแแ แชแแแแแแก แแ แซแแแแแแก แแแ แฏแแแแแ, แ แแแแกแแช แแแกแแฎแฃแ แแแ แฌแงแแแแ แแแแกแแแแแก ("แคแ แฉแฎแแแแแจแ"). แจแแกแแแแแแกแแ, แแฃ
fortune
แจแแชแแแแแแก แฌแแ แแแแแแ แจแแแขแงแแแแแแแก แกแขแแขแฃแกแแก แแแฎแฃแ แฃแ แแ แฎแก, แจแแแแแ แแแแแแแแแแก|| echo "ะัะธะฑะบะฐ"
แแก แแแ แกแแ แฌแแแ, แ แแแแแ แแ แฎแ แฃแแแ แแแแแขแแแแ. -
fortune | cat - | head -1 && echo "ะฃัะฟะตัะฝะพ" || echo "ะัะธะฑะบะฐ"
แแฅ แแ แแก แฃแขแแแแขแ
cat
แแแฅแแแแแแก แ แแแแ แช แแแแจแแแแ, แ แแแแแ แแก แฃแแฃแแแแแแงแแคแก แจแแชแแแแแกEPIPE
แแแงแแแแแกแแแแแแ. แแแกแแแแแกแแแแก แแก แกแแแแแ แแกแแfortune
แแชแแ แ (แ แแแแแแแแ แฎแแแ) โโแแ แฏแแแแ แแ แฎแแก แแฃแคแแ แจแ (512 แแแแขแแแแ โ64K-แแแ, แฃแแแขแแก OS-แจแ โฅ4K). แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ, แแ แแแแแแ แจแแแซแแแแ แแแแ แฃแแแแก.
แ แแแแ แแแแแแฃแจแแแแ แกแฌแแ แแ EPIPE
แแ แกแฎแแ แฉแแฌแแ แแก แจแแชแแแแแแ?
แแ แแ แกแแแแแก แแ แแ แกแฌแแ แ แแแแแกแแแแแ, แแแแ แแ แแ แกแแแแแก แแแ แขแแแ แ แแแแแแแแแชแแแแ:
EPIPE
แกแแญแแ แแ แฃแแแ แแแแฃแจแแแแแก (แแ แแแกแแฎแแแ แแแกแแแแก แกแขแแขแฃแกแจแ) แแแแแชแแแแ แแแแแขแแแแกแแก, แ แแแแแแช แแแแแฎแแแก แแแแแแแแแแก. แแแแแแแแแ, แแ แฅแแแแก แแ แกแแ แแแแ แแ แแแแฃแแแแฃแ แ แกแแจแฃแแแแแแแแก แแฃแจแแแแแก แแ แแก.EPIPE
แฃแแฏแแแแกแแ แแแแแ แแ แแแ แแแคแแ แแแชแแแกแ แแ แแแแฎแแแ แ แจแแขแงแแแแแแแแแแก แฉแแแแแแแกแแก. แแแแแแแแแ, แแแ แแแแขแ แแแแก แจแแกแแฎแแ แแแคแแ แแแชแแแก แฉแแแแแแแกแแก--help
แแ--version
.- แแฃ แจแแแฃแจแแแแแฃแแ แแแแ แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแแแกแแแแแจแ แแแ แ
| head
, แแแจแแEPIPE
แกแฏแแแก แแแแแ แแ แแแ, แแแ แแ แฏแแแแ แแแแฃแจแแแแแ แแ แแแกแแแแก แกแขแแขแฃแกแจแ แแกแแฎแแ.
แแแแแ แแแกแแ แแแแแ แจแแแแฎแแแแแ แแ แแแแแแแ แแแแแแฃแฎแแแ แแฃแแแแแก
แแกแ แแแแแ แซแแแแ แแแแแ แแแแแ, แแกแ
แแแแแแแ
KDPV-แแแ
แฌแงแแ แ: www.habr.com