Javascript 是一門動態類型、面向對象的腳本語言。javascript
對腳本進行一個感性的認識。就是一個跟計算機執行的文本。css
若是你打開一本 JavaScript 教程,那麼極可能在第一章就看到這句話:html
JavaScript 是一門動態類型、面向對象的腳本語言。前端
然而不少前端工做一年都不清楚這個腳本是什麼意思。java
其實腳本本來來自戲劇舞臺,好比下面這個腳本:node
公館一室內
王媽:(當心翼翼地)小姐,您仍是得注意身子,就吃點東西吧。
雞小姐:(把碗砸在地上)不吃,我就是不吃。
(王媽下)編程
腳本主要由人物對話和舞臺提示組成。演員和道具組只須要按照腳本說的作便可。windows
編程領域的腳本也是相似的,計算機只要照着腳本上說的作便可,好比下面這個腳本:api
cd ~/Desktop mkdir demo cd demo echo "hi" > index.html cd ~/Desktop
因此說,腳本就是給計算機照着作的。這是咱們對「腳本」的一個感性認識。接下來咱們寫一個腳本。bash
mkdir ~/local
cd ~/local
touch demo.txt
mkdir demo cd demo mkdir css js touch index.html css/style.css js/main.js exit
chmod +x demo.txt
sh ~/local/demo.txt
便可運行此腳本
cd ~/Desktop
sh ~/local/demo.txt
cd ~/local; pwd
獲得 local 的絕對路徑touch ~/.bashrc
start ~/.bashrc
,在最後一行添加 export PATH="local的絕對路徑:$PATH"
sh ~/local/demo.txt
,如今你只須要運行 demo.txt 就好了(想一想爲何,道理顯而易見)mv ~/local/demo.txt ~/local/demo
demo
就能執行該腳本了。liunx系統中。可執行的文件就是腳本。不可執行的文件就是PATH。(配置文件)
demo 腳本只能建立名字爲 demo 的目錄,太無聊了,咱們讓目錄名是可變的吧。
mkdir $1 cd $1 mkdir css js touch index.html css/style.css js/main.js exit
$1 表示你傳的第一個參數。
老師你怎麼知道 $1 表示第一個參數?
好問題,答案是
我 Google 出來的 http://lmgtfy.com/?q=bash+first+param
用百度也行 http://www.baidu-x.com/?q=bash+%E7%AC%AC%E4%B8%80%E4%B8%AA+%E5%8F%82%E6%95%B0
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
老師,你怎麼知道 -d $1 能夠判斷目錄是否存在?
我 Google 出來的 http://lmgtfy.com/?q=bash+dir+exists
exit 0
表示沒有錯誤exit 1
表示錯誤代碼爲 1demo && echo '結束'
只有在 demo 成功時,纔會執行 echo '結束'
咱們建立的 index.html style.css 和 main.js 都是空文件,如何給他們填充內容呢?
上面咱們寫的腳本叫作 Bash Script(Bash腳本)。
JS 的全稱叫作 JavaScript(Java腳本),雖然 JS 和 Java 沒什麼關係,可是 JS 依然是一種腳本。
sh demo.sh
對應 node demo.js
)console.log(process.cwd()) // 打印當前目錄 // process.chdir('~/Desktop'); // 這句話不行的,由於 JS 不認識 ~ 目錄 process.chdir("/Users/frank/Desktop") console.log(process.cwd()) // 打印當前目錄
console.log 就至關於 echo
Google nodejs create dir
文檔:https://nodejs.org/api/fs.html#fs_fs_mkdirsync_path_mode
let fs = require("fs") fs.mkdirSync("demo")
Google nodejs create file
文檔: https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options
let fs = require('fs') fs.writeFileSync("./index.html", "")
建立 ~/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)
chmod +x ~/local/jsdemo.js
cd ~/Desktop
node ~/local/jsdemo.js zzz
,就能夠看到 zzz 目錄建立成功了咱們每次執行 ~/local/jsdemo.js 都要用 node 來執行,能不能作到不加 node 也能執行呢(也就是指定執行環境),能夠,在 jsdemo.js 第一行加上這一句便可:
#!/usr/bin/env node
(如下操做在 Windows 上可能失敗,失敗了就算了)
~/local/jsdemo.js zzz
了(免得輸入 node 了)。jsdemo.js zzz
來執行。jsdemo zzz
了。注意,你每次執行前最好刪掉 zzz 目錄,以避免發生衝突。
咱們學會了