shell script, bash, tutorial
在這裡介紹如何撰寫第一隻bash腳本,
對於剛接觸Linux的使用者,用圖形介面的gedit編輯器撰寫是比較友善的
如果你有Linux的使用經驗,可以用VIM編輯器
開始
1. 進入Linux OS之後,在桌面點選右鍵 -> Open terminal
2. 跳出一個Terminal視窗,供使用者輸入指令
3. 輸入以下指令開啟編輯器
gedit s01_hello.sh &
4. 系統開啟gedit編輯器,並產生一個空白檔案
5. 輸入下列指令
#!/bin/bash
echo "Hello, world"
6. 按下Save或者Ctrl+s儲存
7. 切換到Terminal工作,在紅框處任意點選一下滑鼠左鍵
8. 替檔案增加執行權限
chmod +x s01_hello.sh
9. 執行腳本,輸入下列指令
./s01_hello.sh
沒寫錯的話,可以看到Terminal執行腳本後,輸出一行資訊到螢幕上
第一隻腳本也就完成瞜!
VI / VIM編輯器
這是讓新手望之卻步的編輯器,但你可以在純文字工作環境中(Text mode)看到它的身影
Linux老手修改和查看檔案,也大都使用此編輯器
如果要學bash,可以先用gedit,熟了再慢慢轉換用vim,這裡寫一下基本操作,建立一個新檔案
vim temp.sh
你會看到一個空的檔案
你開始敲鍵盤,但是完全沒反應,打的字串無法輸入到編輯器上
難不成電腦壞啦? 別擔心,Linux當掉的機率是非常低的
按下"i, I, o, O, a, A"任一按鈕,告訴編輯器我要開始輸入(insert mode)了
輸入完指令後,按下"ESC"退出編輯模式,再按下":"按鈕
可以看到下面圖案
搭配指令操作
:w 儲存資料
:q 退出編輯
:wq 儲存並退出編輯
:q! 有修改資料後,不儲存退出編輯
詳細說明
1. 開啟gedit指令
gedit s01_hello.sh &
大家可以注意到,開啟編輯器時最後加了一個"&"
這個作用在於讓gedit程式跑在後台(類似多功能),如果沒加"&"的話Terminal行程會被gedit占住,無法再輸入任何指令
為了要編輯完腳本後立刻執行或測試,這樣操作是比較方便的
2. 程式內容
#!/bin/bash
宣告此檔案是使用bash語法
在撰寫bash腳本中,第一行要加入此宣告
echo "Hello, world"
輸出"Hello, world"字串到螢幕上
3. 檔案權限
編輯完成後,檔案是無法執行的,預設中系統會給予讀寫權限但無法執行
若是強制執行會跳出下列錯誤
bash: ./s01_hello.sh: Permission denied
因此我們需要替此檔案增加權限,之後所撰寫的腳本也都需要賦予執行權限才能執行