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 (命令) - 維基百科,自由的百科全書