Google ZX - Javascript ile kabuk komut dosyaları

Javascript ve Node.js ile kabuk komut dosyaları nasıl yazılır

Gerçekten evrensel bir dil

Node.js'nin yükselişiyle birlikte Javascript (ve son zamanlarda Typescript), her türlü farklı komut dosyasını yazmak için öne çıkan bir dil haline geldi. Her Node.js örneğinde bulunan çekirdek kitaplıklar sayesinde geliştiriciler, İşletim Sistemine yapılan çeşitli çağrılara da erişebilir. Javascript'in esnekliği (daha zor bakım maliyeti ile birlikte), bu güçlü çalışma zamanı motoruyla birleştiğinde, mevcut sunucu ortamlarında büyük bir ayak izi kazanmasına yardımcı oldu. UNIX makineleri için bu, Javascript'in yerel olarak İşletim Sistemi tarafından desteklenen iyi kurulmuş Bash betikleriyle birlikte yaşadığı anlamına gelir.

Ama ya…

Peki ya Node.js komut dosyalarınızın içindeki Bash komutlarını doğrudan çağırabilseydiniz? Uygulamaların çoğu için Javascript kullanmak isteyebilirsiniz, ancak bir hedefi gerçekleştirmek için burada ve orada Bash kullanma gereksiniminiz vardır.

Google'ın en son projelerinden biri olan, kısaca “zx” olarak adlandırılan bir CLI aracıyla, artık böyle bir kitaplık mevcuttur. Hepsinden iyisi: hemen kullanabilirsiniz. Tek ihtiyacınız olan, sürüm 14'e eşit veya daha yüksek olan yüklü bir Node.js örneğidir.

// Your JS-file. You can either use
// the .js-suffix or the alternative
// .mjs-suffix, which allows the global
// usage of 'await' when used with 'zx'.

// The nessary shebang, as in Bash-scripts
#!/usr/bin/env zx

// A simple demonstration on how to
// call Bash-command inside your JS.
// Here, we log the current working directory.
await $`echo $PWD`;
// Now to call your file, you can 
// simply use 'npx', the node package
// executor that comes with NPM.

npx zx ./demo.mjs

// For more examples, check out the 
// repo where Google provides some
// more real-world use cases.

Dolar işaretini bir operatör olarak ve ardından Bash kodunu içeren iki geri tepmeyi kullanarak, bir Bash betiğinde olduğu gibi gerçek aramalar yapabilirsiniz.

Ve "zx"i global bir bağımlılık olarak kurarsanız, Javascript dosyalarınızı Bash-komut dosyalarınızla aynı şekilde çağırabilirsiniz.

Keşfetmek için daha fazlası

Bu makale yalnızca pakete bir giriş yapmayı amaçlamaktadır. Daha fazla bilgi için, API'yi ve “zx”in desteklediği tüm özellikleri tam olarak keşfetmek için ekteki bağlantılara göz atın.