学习脚本

##JavaScrpt就是一门动态类型、面向对象的脚本语言

##Node.js也是脚本

  • 不管哪种脚本,实现的功能都差不多,只是语法不同
  • Bash就是一个脚本命令
  • Windows受文件后缀影响
  • linux不收文件后缀名影响
  • PATH就是将命令保存起来
  • node对应bash

##开始

1
2
3
4
5
cd ~/Desktop
mkdir demo
cd demo
echo "hi" > index.html
cd ~/Desktop

用bash的脚本命令完成上面这些操作
1.首先创建一个目录local,然后新建一个文件,后缀无所谓,一般脚本的文件格式是.sh

1
2
3
mkdir ~/local
cd ~/local
touch demo.txt

2.编辑 demo.txt,内容如下:

1
2
3
4
5
mkdir demo
cd demo
mkdir css js
touch index.html css/style.css js/main.js
exit


##然后
在任意位置执行 sh ~/local/demo.txt即可运行此脚本

#####当然为了方便,可以把它添加到PATH里
1.cd ~/local; pwd得到 local 的绝对路径
2.创建 ~/.bashrc:touch ~/.bashrc(这一步相信之前你在命令行的使用中已经创建了)
3.编辑~/.bashrc:start ~/.bashrc,在最后一行添加export PATH="local的绝对路径:$PATH"
4.source ~/.bashrc
5.之前你要运行 sh ~/local/demo.txt,现在你只需要运行demo.txt就行了


#node.js的命令与bash的对比

1
2
3
4
5
6
7
8
9
fs.mkdirSync("./" + dirName) // mkdir $1
process.chdir("./" + dirName) // cd $1
fs.mkdirSync('css') // mkdir css
fs.mkdirSync('js') // mkdir js

fs.writeFileSync("./index.html", "")
fs.writeFileSync("css/style.css", "")
fs.writeFileSync("./js/main.js", "")
process.exit(0) // exit 0


##下面用 JS 脚本来重写 demo.sh
1.创建 ~/local/jsdemo.js,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 var fs = require('fs')

var dirName = process.argv[2] // 你传的参数是从第 2 个开始的

fs.mkdirSync("./" + dirName) // mkdir $1
process.chdir("./" + dirName) // cd $1
fs.mkdirSync('css') // mkdir css
fs.mkdirSync('js') // mkdir js

fs.writeFileSync("./index.html", "")
fs.writeFileSync("css/style.css", "")
fs.writeFileSync("./js/main.js", "")

process.exit(0)
``

2.cd ~/Desktop
3.node ~/local/jsdemo.js zzz,就可以看到 zzz 目录创建成功了