美文网首页
初学脚本

初学脚本

作者: astak3 | 来源:发表于2018-09-07 09:19 被阅读0次

    为了学习命令行,昨天装了linux系统,同时干掉了windows,好心疼正版office,刚刚接触linux一点都不习惯,特别windows里积累的一些小工具都不能用了,感觉像失去了左右手。
    我是window7的原住民,没怎么用的xp,所以每次学校上机课都很难受,用不习惯xp。现在用linux也有种那情况,破釜沉舟适应linux。

    下面命令行都是在linux下用的,windows某些命令可能不适用。

    写一个简单的脚本

    1. 新建一个文件
    mkdir ~/local
    cd ~/local
    touch demo.txt
    
    1. 编辑demo.txt
    mkdir demo
    cd demo
    mkdir css js
    touch index.html css/style.css js/main.js
    exit
    
    1. demo.txt添加可执行权限chmod -x demo.txt
    2. 在任意位置执行, sh ~/local/demo.txt
    3. 一般我在桌面创建,所以先进入桌面cd ~Desktop,在执行上面那句。
    4. ~/local添加到PATH中
    cd ~/local 
    pwd    //得到local的绝对路径
    touch ~/.bashrc
    xdg-open ~/.bashrc     //在最后一行添加 export PATH="local的绝对路
    径:$PATH"
    source ~/.bashrc
    
    1. 之前要运行sh ~/local/demo.txt, 现在只需要运行 demo.txt
      后缀在命令行中没什么太大意义,主要是给人看的。

    PATH 的作用

    1. 你每次在 Bash 里面输入一个命令时(比如 ls、cp、demo),Bash 都会去 PATH 列表里面寻找对应的文件,如果找到了就执行。
    2. 使用 type demo 可以看到寻找过程
    3. 使用 which demo 可以看到寻找结果

    创建一个动态执行目录

    按照上面的方式只能创建一个demo的目录,没有太大的价值,下面动态创建将介绍动态创建。

    1. 新建一个文件
    mkdir ~/local
    cd ~/local
    touch demo
    
    1. 编辑demo
    mkdir $1   //$1表示传递的第一个参数,也是最后执行的时候是demo $1,把$1替换成你要创建的名字
    cd $1
    mkdir css js
    touch index.html css/style.css js/main.js
    exit   //退出
    
    1. 判断目录是否存在,用法demo && echo“success”,只有demo成功是才会执行echo"succes"exit1表示错误代码为1,exit0表示没有错误。
    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
    

    命令行里面Ctrl + D表示退出,Ctrl + C表示中断。

    用Node.js写脚本

    命令行用的脚本叫做 Bash Script(Bash 脚本)
    JS全称叫做 JavaScript (Java 脚本),要注意和java没关系
    Bash 脚本能做的事情,Java 脚本也能做。

    JS脚本几个简单的语法

    console.log(process.cwd())         //打印当前目录,cnsole.log相当于echo
    process.chdir("/home/uccs/Desktop")        //JS脚本不认识~目录,所以
    process.chdir("~/Desktop") 是不行的
    console.log(process.cwd())     //打印当前目录
    
    1. 创建~/local/jsdemo.js,内容如下
    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", "")   //加点表示当前目录
    fs.writeFileSync("css/style.css", "")  //不加点也是当前目录
    fs.writeFileSync("./js/main.js", "")
    
    process.exit(0)        //exit(0)
    
    1. jsdemo.js 加上可执行权限chmod +x ~/local/jsdemo.js
    2. cd ~/Desktop
    3. node ~/local/jsdemo xxx 就可以在桌面看见xxx目录创建成功。

    shebang

    jsdemo.js第一行加上#!/usr/bin/env node,每次执行的时候就不用输入node了。

    总结

    1. 脚本就是给机器一行一行执行的文本
    2. Bash 脚本有 Bash 脚本的语法,Node.js 脚本有 JS 语法
    3. 不管是那种脚本,能实现的功能都差不多,只是语法不同

    相关文章

      网友评论

          本文标题:初学脚本

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