js是一门动态类型.面向对象的脚本语言
动态类型:
脚本:告诉计算机该怎么做的文本(1.脚本是由语法的)。
一.Bash Script(bash脚本)
1.写一个脚本
进入一个目录这里为local目录
执行以下命令:
touch demo.sh(linux中.sh结尾会直接执行(.sh可执行文件))
mv demo.sh demo.txt
start demo.txt
编写demo.txt内容:
mkdir demo
cd demo
mkdir css js
touch css/style.css js/main.js
exit
保存后退出
mv demo.txt demo.sh(运行时需要加后缀.sh)
mv demo.sh demo(不需要加后缀)
如果不是windows需要给demo.sh添加可执行权限:chmod +x demo.sh
sh ~/local/demo.sh(执行demo.sh///sh->shell)
执行后发现该路径下多了一些文件
2.PATH(命令都是一个个可执行的文件,这些命令的文件路径全部存放在PATH中。当我们在执行命令时,系统会先在path目录中依次寻找可执行的文件)
- 1.type 打印出一个命令的路径,可以看到寻找过程,which告诉命令寻找的的结果
- 2.当我们输入命令时.系统先在PATH一个一个路径寻找存放命令文件,找到后立即执行
- 3.echo $PATH 打印出PATH中所有的路径
- 4.所有的命令都是一个可执行的脚本文件
因此,我们可以利用PATH来自定义自己的命令
思路:将自定义的文件路径存储在PATH中
linux中所有东西都是文件,可执行的文件是命令,不可执行的文件是配置 - 5.文件后缀是没什么作用的,只是为了让人类看懂。
3.自定义一个命令吧
将demo.sh中的内容改成:
mkdir 1是执行的脚本后的第一个参数)
cd $1
mkdir css js
touch css/style.css js/main.js
exit
保存退出
执行sh ~/local/demo.sh demo2即可创建一个目录名为demo2的目录
* 进阶 *
将 demo.sh所在目录的绝对路径加入加入到PATH中,直接输入demo即可启用该命令
- 1.临时设置命令行输入export PATH=”local绝对路径:$PATH”
- 2.永久设置:在~./bashrc文件中写上export PATH=”local绝对路径:$PATH”(.bashrc文件需手动启动:source ~/.bashrc.负责需要重启后更改才会生效)
4.判断目录是否存在
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
返回值:
exit 0表示没错误
exit 1表示错误代码为1
例子:
demo &&echo “结束”
只有demo成功时,才会执行echo “结束”
二.js脚本
ctrl+d退出
ctrl+c中断
1.Node.js命令行(node相当于js的bash)
process.cwd()->pwd
process.chdir()->cd
console.log()->echo
fs->file system文件系统,和文件相关的都和fs有关
var fs = require(“fs”)
fs.mkdirSync()->mkdir
var fs = require(“fs”)
fs.writeFileSync()->touch
2.利用js写脚本
用 JS 脚本来重写 demo.sh
创建 ~/local/jsdemo.js,内容如下
var fs = require(‘fs’)
var dirName = process.argv[2] // 你传的参数是从第 2 个开始的
fs.mkdirSync(“./” + dirName) // mkdir 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)
// (Windows 用户跳过这一步)给 jsdemo.js 加上执行权限 chmod +x ~/local/jsdemo.js
cd ~/Desktop
node ~/local/jsdemo.js zzz,就可以看到 zzz 目录创建成功了
shebang
我们每次执行 ~/local/jsdemo.js 都要用 node 来执行,能不能做到不加 node 也能执行呢(也就是指定执行环境),可以,在 jsdemo.js 第一行加上这一句即可:
#!/usr/bin/env node
(以下操作在 Windows 上可能失败,失败了就算了)
然后你就可以直接用 ~/local/jsdemo.js zzz 了(省得输入 node 了)。
如果你已经把 ~/local 加入了 PATH,那么甚至可以直接输入 jsdemo.js zzz 来执行。
如果你再把 jsdemo.js 的后缀 .js 去掉,就可以直接 jsdemo zzz 了。
注意,你每次执行前最好删掉 zzz 目录,以免发生冲突
通过上面我们学会了:
1.用 bash写一个脚本
2.path路径的含义用法
3.用node.js写脚本