何为脚本
脚本就像剧本,计算机会按照剧本进行下去。我们写脚本,让计算机执行。
新建一个简单的脚本
- 首先创建文件夹,用于存放脚本。进入文件夹,创建一个demo.txt文件。
- 在demo.txt中写入让计算机执行的命令
mkdir demo
cd demo
mkdir css js
touch index.html css/style.css js/main.js
exit
- 在任意文件夹下,执行
sh ~/local/demo.txt
我的脚本存放在~/local下。然后就可在文件中看到脚本执行后的结果。生成了css/style.css、js/main.js和index.html。 - 将 ~/local 添加到 PATH 里
- 设置临时PATH。运行 export PATH="local的绝对路径:$PATH",这句话是把 local 目录加到 PATH 里,注意替换 local的绝对路径
这时你只要运行 demo.txt 就相等于运行 sh ~/local/demo.txt 了- 上面的PATH在你重启git Bash 后失效。
创建 ~/.bashrc:touch ~/.bashrc
编辑 ~/.bashrc:start ~/.bashrc
在编辑器里添加一行字: export PATH="local的绝对路径:$PATH"
执行source ~/.bashrc
之前你要运行 sh ~/local/demo.txt,现在你只需要运行 demo.txt
- 如果你觉得 demo.txt 的后缀 .txt 没什么用,可以用下面的命令删掉它
mv ~/local/demo.txt ~/local/demo
现在你只要运行 demo 就能执行该脚本了。
- 此时的脚本只能创建名叫demo的目录。我们试着让文件名可变。修改demo脚本
mkdir
$1
cd $1
mkdir css js
touch index.html css/style.css js/main.js
exit
- 输入demo 【目录名字】,例如
demo bianliang
- 判断目录是否存在
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 或者 1。这叫做返回值。然后在bash执行脚本后添加另外一条命令
demo bianliang && echo '执行失败'
- 计算机自带了ls、cp、mkdir等,其实都是一个个可执行文件,就是一个脚本,告诉计算机怎么做。输入
which [命令]
例如:which ls可以看到脚本文件的路径。 - PATH的作用。每次输入命令时,计算机都要先寻找命令的位置,PATH是一个列表,里面存放着各种可执行文件的路径。
每次输入一个命令时,如ls cp mkdir ls等,都回去PATH列表里面寻找相应的文件,如果找到了就执行。
- 还可以使用node.js写脚本。创建一个文件。demo2,里面写下列的内容。
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", "") //echo "" > index.html
fs.writeFileSync("css/style.css", "") //echo "" > css/style.css
fs.writeFileSync("./js/main.js", "") //echo "">js/main.js
process.exit(0)
-
使用 node demo2 【目录名称】。此处可以解释为什么传的参数是从第二个开始,就像一个数组,我们的目录名称刚好是索引2。[node,demo,'目录名称']。
node demo2 yyy
就在当前目录下创建了yyy目录 -
为了不用每次都输入node。我们在脚本开头加上
#!/usr/bin/env node
。就可以直接demo2 yyy
-
nodejs官网可学习node脚本的相关知识node.
网友评论