指令碼
指令碼語言 (Scripting language), 例如JavaScript是一門動態型別, 物件導向的指令碼語言.一個指令碼通常是解釋執行而非編譯.
寫一個指令碼
注意以下命令列的註釋都不要寫
- 在Desktop新建一個資料夾local, 然後cd到local建立一個檔案demo.txt
mkdir local
cd local/ #一定要執行這個命令
touch demo.txt
複製程式碼
- 編輯demo.txt, 內容如下:
pwd #確認下當前路徑, /Users/yjjtt/Desktop/local
vi demo.txt 或者直接open demo.txt 進行編輯demo.txt
在裡面輸入圖中的五行命令,然後儲存
複製程式碼
- (windows使用者可以跳過這一步) 給demo.txt 新增執行許可權
chmod +x demo.txt
,如果不執行這一步,則無法執行此指令碼,會提示permission denied: demo.txt - 如果覺得demo.txt的txt字尾看著彆扭,也可以去掉
mv demo.txt demo
這樣執行sh ~/Desktop/local/demo
就可以了
mv demo.txt demo
sh ~/Desktop/local/demo
複製程式碼
- 如果覺得執行
sh ~/Desktop/local/demo
還是很麻煩, 可以將~/Desktop/local加到PATH裡
- 臨時設定PATH
pwd #檢視下loacl所在的絕對路徑
export PATH="local的絕對路徑:$PATH" # 這句話就是將local目錄加到PATH裡
複製程式碼
- 永久設定PATH, 上面的PATH在重啟Bash後就會失效
touch ~/.bashrc # 建立~/.bashrc
vi ~/.bashrc # 編輯~/.bashrc
在編輯器裡寫入 export PATH="local的絕對路徑:$PATH"
source ~/.bashrc # 儲存編輯,這句命令一定要寫
demo # 執行demo
複製程式碼
PATH
- PATH的作用就是每次在Bash裡面輸入一個命令時, Bash都會去PATH列表裡面去找對應的檔案,找到了就執行, 指令碼其實就是一個可執行的檔案(ls, cd, mkdir..)
- 可以輸入命令
echo $PATH
檢視所有的路徑,Bash就會在這些路徑中依次查詢 type demo
可以檢視查詢過程which demo
可以看到查詢結果
給指令碼加個引數
上面的指令碼demo只能建立一個demo的目錄, 現在來讓目錄名是可變的.
vi demo # 編輯指令碼
mkdir $1 # 將demo換成$1, $1就表示你傳的第一個引數(目錄名), 第二個引數就是$2,以此類推
cd $1
mkdir css js
touch index.html css/style.css js/main.js
exit
# 同樣是五行命令
複製程式碼
上面編輯完儲存後, 直接demo xxx 就會建立一個名叫xxx的目錄
判斷目錄是否存在
編輯demo, 注意下面的Bash指令碼, 一個空格也不能多,一個也不能少
if [ -d $1 ]; then # 如果目錄存在
echo 'error: dir exists'
exit 1 # 返回值1 代表錯誤程式碼為1
else
mkdir $1
cd $1
mkdir css js
touch index.html css/style.css js/main.js
echo 'success'
exit 0 # 返回值0 代表成功
fi
複製程式碼