用 bash 實現(xiàn) npm init 的功能

npm init 的功能是讓你在命令行里根據(jù)提示輸入配置內(nèi)容,然后創(chuàng)建一個package.json 文件,里面寫入剛才輸入的配置項,如下圖所示

npm init

通過 bash 實現(xiàn)類似的功能,代碼如下

#!/bin/bash

echo "This utility will walk you through creating a package.json file."

# 名字
echo -e "package name: \c"
read name
result="package name: $name"

# 版本號
echo -e "version: \c"
read version
result="$result, version: $version"

# 是否ok
echo "Is this ok? (y/n)"
read choice
if [ $choice = "y" ]
then
    echo $result > package.json
    echo "success"
else
    echo "Aborted."
fi
改進

通過 ./hello.sh 運行似乎不夠優(yōu)雅,而且也不能像 npm init 可以全局運行。alias 命令可以用自定義字符串替換指定命令,所以在命令行下運行 alias hello='/c/Users/wang/practice/bash/hello.sh'(windows需要在git bash 中運行),此后就可以在全局運行hello命令,在所在文件夾下創(chuàng)建package.json文件。直接在命令行下使用alias只在當(dāng)前會話起作用,為了一直能夠使用自定義的命令,需要將命令寫入~/.bashrc文件中。

程序的缺陷

配置項沒有默認值,要求用戶必須輸入

教訓(xùn)

變量名和等號之間不能有空格,例如 res = "hello"
給變量賦值的時候前面不能加$,例如 $res="hello"
拼接字符串只能這樣:result="$result, hello"

參考

Shell 教程 | 菜鳥教程
添加 Bash 自定義命令 - Jasin Yip
alias (命令) - 維基百科,自由的百科全書

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容