Minuly tyden jsem pravdepodobne poprve v zivote pouzil ip misto ifconfig/route a podobnych ve scriptu, protoze se mi libilo umet zjistit adresu lokalniho interface v zavislosti na destination adrese. To jsem si dal. Krasne jsem to odladil na ubuntu a ono to pak na synology nejelo, protoze ten blbej ip na synology ma jinak zformatovany vystup nez ten jeste blbejsi ip na ubuntu. Kdyz uz vymysleli krasnou novou utilitu, taky ji mohli standardizovat!
Pokud byste nekdo potrebovali neco podobneho, tak command
ip route get $ip | head -1 | sed "s/^.*src.\\([0-9.]*\\).*$/\\1/"
vrati adresu lokalniho interface v zavislosti na target ip. Tohle je uz upravena verze, ktera chodi jak na synology, tak na ubuntu. Jinde jsem to nezkousel.
Představte si, že oni ji standardizovali. A ne hloupě standardizací výpisu určeného pro člověka, jako to mají jiné nejmenované utility. Udělali to výstupem do strojově zpracovatelného formátu – JSON.
Dovolím si odcitovat něco z výborné knihy. Jmenuje se The Linux command line https://nostarch.com/tlcl2
During the 1980s, Unix became a very popular commercial operating system,
but by 1988, the Unix world was in turmoil. Many computer manufacturers had
licensed the Unix source code from its creators AT&T, and were supplying various
versions of the operating system with their systems. However, in their efforts
to create product differentiation, each manufacturer added proprietary changes
and extensions. This started to limit the compatibility of the software. As always
with proprietary vendors, each was trying to play a winning game of “lock-in” with
their customers. This dark time in the history of Unix is known today as the
Balkanization.