[bash] 第一隻程式

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

因此我們需要替此檔案增加權限,之後所撰寫的腳本也都需要賦予執行權限才能執行