初识脚本

何为脚本

脚本就像剧本,计算机会按照剧本进行下去。我们写脚本,让计算机执行。

新建一个简单的脚本

  1. 首先创建文件夹,用于存放脚本。进入文件夹,创建一个demo.txt文件。
  2. 在demo.txt中写入让计算机执行的命令

mkdir demo
cd demo
mkdir css js
touch index.html css/style.css js/main.js
exit

  1. 在任意文件夹下,执行 sh ~/local/demo.txt我的脚本存放在~/local下。然后就可在文件中看到脚本执行后的结果。生成了css/style.css、js/main.js和index.html。
  2. 将 ~/local 添加到 PATH 里
  1. 设置临时PATH。运行 export PATH="local的绝对路径:$PATH",这句话是把 local 目录加到 PATH 里,注意替换 local的绝对路径
    这时你只要运行 demo.txt 就相等于运行 sh ~/local/demo.txt 了
  2. 上面的PATH在你重启git Bash 后失效。
    创建 ~/.bashrc:touch ~/.bashrc
    编辑 ~/.bashrc:start ~/.bashrc
    在编辑器里添加一行字: export PATH="local的绝对路径:$PATH"
    执行source ~/.bashrc
    之前你要运行 sh ~/local/demo.txt,现在你只需要运行 demo.txt
  1. 如果你觉得 demo.txt 的后缀 .txt 没什么用,可以用下面的命令删掉它

mv ~/local/demo.txt ~/local/demo
现在你只要运行 demo 就能执行该脚本了。

  1. 此时的脚本只能创建名叫demo的目录。我们试着让文件名可变。修改demo脚本

mkdir $1
cd $1
mkdir css js
touch index.html css/style.css js/main.js
exit

  1. 输入demo 【目录名字】,例如demo bianliang
  2. 判断目录是否存在
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
  1. 可在exit后面添加 0 或者 1。这叫做返回值。然后在bash执行脚本后添加另外一条命令

demo bianliang && echo '执行失败'

  1. 计算机自带了ls、cp、mkdir等,其实都是一个个可执行文件,就是一个脚本,告诉计算机怎么做。输入which [命令]例如:which ls可以看到脚本文件的路径。
  2. PATH的作用。每次输入命令时,计算机都要先寻找命令的位置,PATH是一个列表,里面存放着各种可执行文件的路径。

每次输入一个命令时,如ls cp mkdir ls等,都回去PATH列表里面寻找相应的文件,如果找到了就执行。

  1. 还可以使用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)
  1. 使用 node demo2 【目录名称】。此处可以解释为什么传的参数是从第二个开始,就像一个数组,我们的目录名称刚好是索引2。[node,demo,'目录名称']。node demo2 yyy就在当前目录下创建了yyy目录

  2. 为了不用每次都输入node。我们在脚本开头加上 #!/usr/bin/env node。就可以直接 demo2 yyy

  3. nodejs官网可学习node脚本的相关知识node.

你可能感兴趣的:(初识脚本)