這裡介紹如何使用 Node.js 來開發 Linux 系統用的工具程式,並且提供各種範例程式讓初學者參考。
Node.js 除了最為網頁伺服器之外,也可以用來開發系統用的小工具程式,比起使用傳統的 Bash 語法,JavaScript 應該會讓一般人更容易上手,而且執行效能也很不錯,尤其在牽涉到大量的 I/O 的時候,更能凸顯 Node.js 非同步的效能優勢。
Hello World
首先來看一下使用 Node.js 的 Hello World 程式:
#!/usr/bin/env node console.log('Hello, World.');
第一行是以 env
來指定直譯器的位置,而第二行是輸出字串到螢幕上。
我們將這個程式儲存成 hello
這個檔案,而要讓它可以正常在 Linux 中執行,記得要開啟執行權限:
chmod +x hello
接著就可以執行它了:
./hello
輸出為:
Hello, World.
命令列參數
一般的指令通常都會附帶一些參數讓使用者設定各種選項,在 Node.js 的環境中,我們可以從 process.argv
這個變數取得從命令列所傳入的參數,我們可以寫一小程式來實際看一下這個變數的值:
#!/usr/bin/env node
console.log(process.argv);
架設我們將這個程式儲存為 demo1
,設定好執行權限後,接著執行:
./demo1 --gtwang -a -b
輸出為
[ '/usr/local/bin/node', '/Users/seal/tmp/demo1', '--gtwang', '-a', '-b' ]
process.argv
的第一個元素是 node
執行檔的位置,而第二個則是目前執行的指令稿位置,第三個之後就是命令列所指定的參數,如果只需要參數的資料,可以用 slice
將前兩個沒有用的元素去掉:
var args = process.argv.slice(2);
這樣 args
就只會包含單純參數的部分。
程式傳回值
在開發 UNIX/Linux 系統的程式時,應該同時要注意程式離開時的傳回值,標準的指令在執行成功時會傳回 0
,如果出現錯誤,則會傳回非 0
的值,而在 Node.js 的環境中,在程式結束的時候,我們可以用這樣的方式回傳指定的數值:
if (error) { // 如果出現錯誤 process.exit(1); } else { // 如果正常結束 process.exit(0); }
繼續閱讀: 12