nushell 介紹
June 22, 2023•66 words
nushell 是一個新的 shell ,提供 pipeline 和結構化資料的操作。nushell 使用 tcl-like 的 nu script 作為腳本語言,並加以改進。
tcl-like 語言是指每個敘述開頭都是一個指令,由第一個指令來決定後面的參數要放什麼。因此 if 也是一種指令。這種程式語言特別好學。nu script 繼承了這樣的優點,並引進了 pipeline 概念,更加優化 nu script 作為 shell 用途上的程式語言。
當你在 nushell 上打一個指令時,這個指令如果是內建指令,則執行該內建指令動作。如果不是,則看該指令是否為 PATH 下執行檔,如果是則執行,如果不是則顯示錯誤。這個特性讓你在shell使用 nu script時就像其他 shell 一樣方便,而不是要特殊語法才能執行程式。
nushell 敘述的輸出可以透過 pipeline 作為下一個敘述的輸入,像多數的 shell 一樣。不過 nushell 的輸出預設都是結構化輸出,方便你處理資料,而不是要透過各種手法來取得你要的東西。
例如你可以透過下面指令取得最新 linux 版的下載連結
http get $"https://api.github.com/repos/($repo)/releases/latest"|get assets|where name =~ "linux" and name =~ "x86"| {$in.0.browserdownloadurl
我們不用透過任何外部程式來完成這項工作,只需要透過內建指令即可做到,十分方便。
pipeline 流程,也符合我們下指令的習慣。上一個指令的輸出結果,丟到下個指令處理。
總結,nushell是一個方便寫 script 且方便使用的 shell。對於 devops 來說是一個神器。