Bash (ve diğer unix kabukları), 32 (33) bayt
Birinci ve ikinci deneme:
case `echo|od` in *5*)echo B;;*)echo L;;esac # portable
[[ `echo|od` =~ 5 ]]&&echo B||echo L # non-portable
Dennis sayesinde, kısa versiyon:
od<<<a|grep -q 5&&echo L||echo B # non-portable
echo|od|grep -q 5&&echo B||echo L # portable
Yardımcı echoprogram, hex değeri 0Aolan ve başka bir çıktı içermeyen yeni bir satır çıkarır . İçin <<<aöyle61 0A .
Yardımcı odprogram, varsayılan olarak, girişi iki baytlık sözcükler olarak kullanır, baytların sayısı tek ise sıfır dolgulu ve sekizlik değerine dönüştürür. Bu, eko çıktısının çıkması ile sonuçlanır 0A 00, ki bunlar 005000büyük-endian veya 000012küçük-endian olarak dönüştürülür . 61 0Aolur 005141biraz endian ve 060412büyük endian içinde. Od dolu çıkışı da biz kullanamaz anlam adres ve boyut verileri içerir 0, 1ya da2 test için.
Komut, sistemin doğruluğunu ortaya çıkarmak için iyi tanımlanmıştır. Gönderen standardı :
Sayısal değerlerin yorumlanmasında kullanılan bayt sırası, uygulama tarafından tanımlanır, ancak karşılık gelen tipte bir sabitin sistemdeki belleğe kaydedildiği sıraya karşılık gelir.
Uyumluluk notları
Tüm sistemlerde echo|odçift tırnak işareti içermeyen (yani üç kelimeli bir argümanla sonuçlanan) arkasına çift tırnak işareti koyduğundan emin değilim case. Tüm sistemlerin sonlandırıcı yeni satır olmadan kabuk komut dosyalarını destekleyip desteklemediğinden emin değilim. Büyük-endian sistemlerine doldurma baytı ekleyerek od davranışının% 100'ünden emin değilim. Gerekirse echo a, taşınabilir sürümler için kullanılabilir. Tüm scriptler bash, ksh ve zsh olarak, taşınabilirler ise çizgi şeklinde çalışır.