Bash指令碼

Yjjtt發表於2018-12-10

指令碼

指令碼語言 (Scripting language), 例如JavaScript是一門動態型別, 物件導向的指令碼語言.一個指令碼通常是解釋執行而非編譯.

寫一個指令碼

注意以下命令列的註釋都不要寫

  1. 在Desktop新建一個資料夾local, 然後cd到local建立一個檔案demo.txt
mkdir local
cd local/  #一定要執行這個命令
touch demo.txt
複製程式碼
  1. 編輯demo.txt, 內容如下:
pwd #確認下當前路徑, /Users/yjjtt/Desktop/local
vi demo.txt 或者直接open demo.txt 進行編輯demo.txt
在裡面輸入圖中的五行命令,然後儲存
複製程式碼

Bash指令碼

  1. (windows使用者可以跳過這一步) 給demo.txt 新增執行許可權 chmod +x demo.txt,如果不執行這一步,則無法執行此指令碼,會提示permission denied: demo.txt
  2. 如果覺得demo.txt的txt字尾看著彆扭,也可以去掉mv demo.txt demo這樣執行 sh ~/Desktop/local/demo就可以了
mv demo.txt demo
sh ~/Desktop/local/demo
複製程式碼
  1. 如果覺得執行sh ~/Desktop/local/demo還是很麻煩, 可以將~/Desktop/local加到PATH裡
  • 臨時設定PATH
pwd #檢視下loacl所在的絕對路徑
export PATH="local的絕對路徑:$PATH" # 這句話就是將local目錄加到PATH裡
複製程式碼

Bash指令碼

  • 永久設定PATH, 上面的PATH在重啟Bash後就會失效
touch ~/.bashrc # 建立~/.bashrc
vi ~/.bashrc # 編輯~/.bashrc
在編輯器裡寫入 export PATH="local的絕對路徑:$PATH"
source ~/.bashrc # 儲存編輯,這句命令一定要寫
demo # 執行demo
複製程式碼

PATH

  1. PATH的作用就是每次在Bash裡面輸入一個命令時, Bash都會去PATH列表裡面去找對應的檔案,找到了就執行, 指令碼其實就是一個可執行的檔案(ls, cd, mkdir..)
  2. 可以輸入命令echo $PATH檢視所有的路徑,Bash就會在這些路徑中依次查詢
  3. type demo可以檢視查詢過程
  4. 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
複製程式碼

相關文章