用 bash 实现 npm init 的功能

2017-10-16  本文已影响0人  恒星的背影

npm init 的功能是让你在命令行里根据提示输入配置内容,然后创建一个package.json 文件,里面写入刚才输入的配置项,如下图所示

npm init

通过 bash 实现类似的功能,代码如下

#!/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 运行似乎不够优雅,而且也不能像 npm init 可以全局运行。alias 命令可以用自定义字符串替换指定命令,所以在命令行下运行 alias hello='/c/Users/wang/practice/bash/hello.sh'(windows需要在git bash 中运行),此后就可以在全局运行hello命令,在所在文件夹下创建package.json文件。直接在命令行下使用alias只在当前会话起作用,为了一直能够使用自定义的命令,需要将命令写入~/.bashrc文件中。

程序的缺陷

配置项没有默认值,要求用户必须输入

教训

变量名和等号之间不能有空格,例如 res = "hello"
给变量赋值的时候前面不能加$,例如 $res="hello"
拼接字符串只能这样:result="$result, hello"

参考

Shell 教程 | 菜鸟教程
添加 Bash 自定义命令 - Jasin Yip
alias (命令) - 维基百科,自由的百科全书

上一篇下一篇

猜你喜欢

热点阅读