美文网首页
脚本入门

脚本入门

作者: astak3 | 来源:发表于2019-02-09 23:40 被阅读0次

    脚本

    脚本源自戏剧舞台,类似剧本一样的东西,表演者照上面演绎出来

    在编程领域也是类似,计算机照着脚本执行即可,比如下面脚本:

    cd ~/Desktop
    mkdir demo
    cd demo
    mkdir js css
    touch js/mian.js css/style.css
    exit

    写一个简单的脚本

    1. 创建一个 local 目录,一般来说脚本的后缀是 .sh,但是在 linux 下,后缀没有任何意义,只是给人看的
      mkdir ~/local
      cd ~/local
      touch demo
    
    1. 编辑 demo
      mkdir demo
      cd demo
      mkdir js css
      touch js/mian.js css/style.css
      exit
    
    1. 为刚刚创建的文件增加可执行权限chmod +x demo
    2. 在任意位置执行,即可看到新建出来的文件
      cd ~/Desktop
      sh ~/local/demo
    
    1. 把 ~/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 表示错误代码为 1
    demo && 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

    相关文章

      网友评论

          本文标题:脚本入门

          本文链接:https://www.haomeiwen.com/subject/eofteqtx.html