almost 3 years ago

最近將 node 從系統安裝改為透過 nvm 安裝。這樣就可以很乾淨的同時使用 iojsnode。 (或許兩者合併後就多此一舉了 XD)

因為常常搞不清楚現在的版本,所以想要在 Shell Prompt 上提示當前版本。

nvm 提供了許多變數。

$ env
...
NVM_BIN=/Users/user/.nvm/versions/io.js/v1.2.0/bin
NVM_DIR=/Users/user/.nvm
NVM_IOJS_ORG_MIRROR=https://iojs.org/dist
NVM_IOJS_ORG_VERSION_LISTING=https://iojs.org/dist/index.tab
NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist
NVM_PATH=/Users/user/.nvm/versions/io.js/v1.2.0/lib/node
...

我是從 NVM_PATH 開始下手。一開始的想法是先取代掉 /。在用 awk 印出我要的欄位。

$ echo $NVM_PATH | tr "/" " " | awk '{print $5 $6}'
io.jsv1.2.0

但是我希望能夠有一些變化,所以要使用 formatted string ,因此改用 printf

$ echo $NVM_PATH | tr "/" " " | awk '{printf "%s-%s", $5, $6}'
io.js-v1.2.0

後來發現,原來 awk 可以改變 split string

$ echo $NVM_PATH | awk -F "/" '{printf "%s-%s", $6, $7}'
io.js-v1.2.0

最後,就全部使用 awk 完成了字串的處理。

Note 眼尖的朋友會發現最後二式的參照位置不同,原因是使用 awk 分割字串時,/ 前面的空白位置也被算進去了,因此才會將參照都往後移動一位。

← Packing a Debian Package ReactJS 中的 "create" 函數 →
 
comments powered by Disqus