初學腳本

爲了學習命令行,昨天裝了linux系統,同時幹掉了windows,好心疼正版office,剛剛接觸linux一點都不習慣,特別windows裏積累的一些小工具都不能用了,感受像失去了左右手。
我是window7的原住民,沒怎麼用的xp,因此每次學校上機課都很難受,用不習慣xp。如今用linux也有種那狀況,破釜沉舟適應linux。css

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

寫一個簡單的腳本

  1. 新建一個文件java

    mkdir ~/local
    cd ~/local
    touch demo.txt
  2. 編輯demo.txtnode

    mkdir demo
    cd demo
    mkdir css js
    touch index.html css/style.css js/main.js
    exit
  3. demo.txt添加可執行權限chmod -x demo.txt
  4. 在任意位置執行, sh ~/local/demo.txt
  5. 通常我在桌面建立,因此先進入桌面cd ~Desktop,在執行上面那句。
  6. ~/local添加到PATH中linux

    cd ~/local 
    pwd     //獲得local的絕對路徑
    touch ~/.bashrc
    xdg-open ~/.bashrc        //在最後一行添加 export PATH="local的絕對路
    徑:$PATH"
    source ~/.bashrc
  7. 以前要運行sh ~/local/demo.txt, 如今只須要運行 demo.txt

後綴在命令行中沒什麼太大意義,主要是給人看的。windows

PATH 的做用bash

  1. 你每次在 Bash 裏面輸入一個命令時(好比 ls、cp、demo),Bash 都會去 PATH 列表裏面尋找對應的文件,若是找到了就執行。
  2. 使用 type demo 能夠看到尋找過程
  3. 使用 which demo 能夠看到尋找結果

建立一個動態執行目錄

按照上面的方式只能建立一個demo的目錄,沒有太大的價值,下面動態建立將介紹動態建立。工具

  1. 新建一個文件學習

    mkdir ~/local
    cd ~/local
    touch demo
  2. 編輯demoui

    mkdir $1    //$1表示傳遞的第一個參數,也是最後執行的時候是demo $1,把$1替換成你要建立的名字
    cd $1
    mkdir css js
    touch index.html css/style.css js/main.js
    exit    //退出
  3. 判斷目錄是否存在,用法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)
  2. jsdemo.js 加上可執行權限chmod +x ~/local/jsdemo.js
  3. cd ~/Desktop
  4. node ~/local/jsdemo xxx 就能夠在桌面看見xxx目錄建立成功。

shebang

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

總結

  1. 腳本就是給機器一行一行執行的文本
  2. Bash 腳本有 Bash 腳本的語法,Node.js 腳本有 JS 語法
  3. 無論是那種腳本,能實現的功能都差很少,只是語法不一樣
相關文章
相關標籤/搜索