Esittelyssä ABS, ohjelmointikieli komentosarjojen komentosarjoja varten

Viime päivinä otin jonkin aikaa työskennellessäni projektissa, joka oli mielessäni ikuisesti, komentosarjavaihtoehto Bashille: haluan esitellä sinulle ABS-ohjelmointikielen.

Miksi

Sallikaa minun pitää tämä lyhyesti: me kaikki rakastamme kuoriohjelmointia - toistuvien tehtävien automatisointi ilman liikaa vaivaa.

Voisimme todennäköisesti olla samaa mieltä siitä, että kuoren ohjelmointi on myös eräänlainen pähkinä syntaksin suhteen:

if [ -z $STRING ]; then ...fi

Kuten, ehm, mitä helvettiä? fi? -z? suluissa?

Taistelu Bashin tai yleisen kuoren ohjelmointikielen kanssa voi aika ajoin kiivetä. Kirjoituskoodi, kuten:

if (this == that) { parts = this.split("/").filter(...).map(...)}

tuo kyyneleet silmiin, jos käytät kuorta.

Nyt voit tehdä samanlaisia ​​asioita millä tahansa valtavirran ohjelmointikielellä (yllä oleva esimerkki on kelvollinen JavasScript): mitä nämä kielet eivät ole kovin hyviä, on niiden integrointi taustalla olevaan järjestelmään - kuori on yksinkertaisesti paljon yhtäläisempi / tehokkaampi tästä näkökulmasta.

Kuvittele, että voit suorittaa koodin, kuten:

host = $(hostname)
if (host == "johns_computer") { ...}

No, sinun ei tarvitse enää kuvitella: ABS on kieli, joka yhdistää nopeat ja yksinkertaiset järjestelmäkomennot tyylikkäämpään syntaksiin.

Ajattele sitä parhaana karkin jälkeen, vain muistaa tämä on määritelmä, jonka ABS-kirjoittaja antoi sinulle. Mutta vakavasti, se on melko mukava.

Etkö usko minua? Jatka lukemista!

Esimerkkejä

Uskon vakaasti " näytä koodi! ”Mantra, joten päästään nopeasti siihen. Kuorikomentojen suorittaminen on erittäin helppoa ABS: ssä:

# Get the content of your hostfile$(cat /etc/hosts)

ja putket toimivat myös:

# Check if a domain is in your hostfile$(cat /etc/hosts | grep domain.com | wc -l)

Tässä vaiheessa voimme vain kaapata komennon ja komentosarjan tuotoksen sen yli:

# Check if a domain is in your hostfilematches = $(cat /etc/hosts | grep domain.com | wc -l)
# If so, print an awesome stringif matches.int() > 0 { echo("We got ya!")}

Sitä ei tapahdu, mutta sanotaan, että tapahtuu virhe :

# Check if a domain is in your hostfilematches = $(cat /etc/hosts | grep domain.com | wc -l)
if !matches.ok { echo("How do you even...")}
# If so, print an awesome stringif matches.int() > 0 { echo("We got ya!")}

Voisimme tehdä tästä hieman yleisemmän:

$ cat script.abs# Usage $ abs script.abs domain.com# Check if a domain is in your hostfiledomain = arg(2)matches = $(cat /etc/hosts | grep $domain | wc -l)
if !matches.ok { echo("How do you even...")}
# If so, print an awesome stringif matches.int() > 0 { echo("We got %s!", domain)}

Nyt jouset ovat melko tylsiä, joten voimme kokeilla jotain hauskempaa:

# Say we're getting some JSON from a commandx = $(echo '{"some": {"dope": "json"}}')x.json().some.dope # "json"
# Arrays, you say?tz = $(cat /etc/timezone) # "Asia/Dubai"parts = tz.split("/") # ["Asia", "Dubai"]
# You better destructure the hell out of that![continent, city] = tz.split("/")

…ja niin edelleen. ABS: llä voi tehdä paljon "tavallisia" asioita, joten en keskity niihin paljon - haluan näyttää sinulle sen sijaan omituisemmat osat:

# Avoiding the bug that happened because# we forgot to compare strings case-insensitively"HELLO" ~ "hello" # true
# Just range1..3 # [1, 2, 3]
# Combined comparison operator (thanks Ruby!)5  5 # 05  6 # -16  5 # 1
# Classic short-circuiting1 && 2 # 21 || 2 # 1

Voit selata koko dokumentaatiota 15 minuutissa: ABS: n tavoitteena ei ole olla yleiskäyttöinen, ominaisuuksilla ladattu kieli, joten pinta ei ole niin leveä. Lisäksi, jos olet työskennellyt esimerkiksi JavaScriptin, Pythonin tai Rubyn kanssa, sinulla ei ole vaikeuksia tottua ABS: ään.

Mitä tapahtuu nyt?

Voit siirtyä ABS: n verkkosivustolle ja oppia lisää kielestä. Rohkeimmat tekevät sen sijaan matkan ABS: n github-repoon ja lataavat julkaisun asentaakseen sen paikallisesti.

Rohkeammat vain:

bash <(curl //www.abs-lang.org/installer.sh)

(sinun on ehkä sudo juuri ennen sitä)

Kumpi sinä olet?

Alun perin julkaistu osoitteessa odino.org (25. joulukuuta 2018).

Voit seurata minua Twitterissä - ranteet ovat tervetulleita! ?