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