脚本:给计算机照着做的“剧本”(这是对脚本的感性认识)
脚本不是技术术语,只是一个单词(Script),因此无法很好地定义它。
用git bash写一个脚本
if [ -d $1 ]; then
echo 'error: dir exists'
exit
else
mkdir $1
cd $1
mkdir css js
touch index.html css/style.css js/main.js
echo 'success'
exit
fi
通过运行这个脚本,就会在当前目录中创建一个里面含“index.html”、“/css/style.css”、“/js.main.js”的目录demo
若目录创建成功,则提示“success”,否则提示“error: dir exists”
从上述脚本中可以看出,在git bash中“判断目录是否存在”变量名文件的命令为
if [ -d $1 ]; then
else
fi
在git bash中对命令的格式十分苛刻,少一空格或多一空格都会出错
另外,可以通过在.bashrc中加入
export PATH = "脚本所在的绝对路径:$PATH"
使得只要在git bash中输入脚本名即可直接运行脚本
exit的用法
exit 0
表示没有错误,返回代码0
exit 1
表示出现错误,返回错误代码为 1
demo && echo '结束'
只有在 demo 成功时,才会执行 echo '结束'
demo || echo '失败'
只有在 demo 成功时,才会执行 echo '结束'
用NodeJS来写同样的脚本
var fs = require('fs')
var dirName = process.argv[2] // 你传的参数是从第 2 个开始的
if (fs.existsSync("./" + dirName))
process.exit(1)
else{
var way ="./" + dirName
fs.mkdirSync(way) // mkdir $1
fs.mkdirSync(way + '/css') // mkdir css
fs.mkdirSync(way + '/js') // mkdir js
fs.writeFileSync(way + "/index.html", "<!DOCTYPE>\n" + "<title>Hello</title>\n" + "<h1>Hi</h1>")
fs.writeFileSync(way + "/css/style.css", "h1{color: red;}")
fs.writeFileSync(way + "/js/main.js", "var string = " + "Hello World\n" + "alert(string)")
process.exit(0)
}
但要在git bash运行这个脚本,需要先输入 node再接脚本名称。
如不想输入node,则需要在脚本起始处输入shebang,即以下命令
#!/usr/bin/env node
对于编写NodeJS的脚本,如有不懂的命令
可以查阅以下网址:https://nodejs.org/api/fs.html