脚本
脚本源自戏剧舞台,类似剧本一样的东西,表演者照上面演绎出来
在编程领域也是类似,计算机照着脚本执行即可,比如下面脚本:
cd ~/Desktop
mkdir demo
cd demo
mkdir js css
touch js/mian.js css/style.css
exit
写一个简单的脚本
- 创建一个 local 目录,一般来说脚本的后缀是 .sh,但是在 linux 下,后缀没有任何意义,只是给人看的
mkdir ~/local
cd ~/local
touch demo
- 编辑 demo
mkdir demo
cd demo
mkdir js css
touch js/mian.js css/style.css
exit
- 为刚刚创建的文件增加可执行权限
chmod +x demo
- 在任意位置执行,即可看到新建出来的文件
cd ~/Desktop
sh ~/local/demo
- 把 ~/local 添加到 PATH 里
cd ~/loca;pwd 得到 local 的绝对路径
touch ~/.bashrc
vim ~/.bashrc
在最后后面添加一行字:export PATH="local的绝对路径:$PATH"
source ~/.bashrc
之前要运行 sh ~/local/demo 现在只需运行 demo
参数
把上面的写的脚本中的 demo 改成 $1,$1表示传的第一个参数
mkdir $1
cd $1
mkdir js css
touch js/main.js css/style.css
exit
判断目录是否存
if [ -d $1 ]; then
echo 'error: dir exists'
exit 1
else
mkdir $1
cd $1
mkdir css js
touch index.html css/style.css js/main.js
echo 'success'
exit 0
fi
exit 0
表示没有错误exit 1
表示错误代码为 1demo && echo '结束'
只有在demo
成功时,才会执行echo '结束'
用 JS 脚本重写 demo
var fs = require('fs')
//执行时 node jsdemo xxx,这个 xxx 就是传的第2个参数
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)
shebang
我们每次执行~/local/jsdemo
都要用node
来执行,能不能做到不加node
也能执行呢(也就是指定执行环境),可以,在jsdemo
第一行加上这一句即可:#!/usr/bin/env node