分類: Linux

Node.js 開發命令列程式,用 JavaScript 撰寫 Linux 系統用的指令稿

這裡介紹如何使用 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);
}

Page: 1 2

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Share
Published by
G. T. Wang
標籤: Node.js

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

2 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

2 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

3 年 ago