TShopping

 找回密碼
 註冊
搜索
查看: 1232|回復: 7

[教學] Shell Script

[複製鏈接]
發表於 2014-1-14 10:08:56 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk Push to Twitter 
Shell Script主要用途就是用來協助使用者在UNIX or Linux環境上, 以更方便, 更自動化的方式來執行想要執行的指令, 它也可以很快速的協助使用者 or 管理者大量地執行重複性的動作與指令. 做為一個系統管理者, 學會Shell Script絕對可以事半功倍.

基本觀念與操作

開始建立第一個shell script

  1. $ pwd
  2. /home/xfish/bin

  3. $ ls
  4. myscript
  5. myscript2

  6. $ cat myscript
  7. ls -aF

  8. $ myscript
  9. bash: ./myscript: Permission denied

  10. $ chmod +x myscript

  11. $ ./myscript
  12. ./       ../       myscript*     myscript2*
複製代碼

shell script其實就是一個很簡單的文字檔案,  檔案裡面有著可以操作與控制相關動作與命令, 同時它必須具備能夠執行的能力,
在UNIX與Linux環境下, 也就是必須有 +x 的屬性

上面是一個很簡單的shell script, 簡單地列出目前目錄下的檔案.

同時由於Linux/UNIX底下有多種shell的編譯器, 我們也可以在該script中的第一行來指定利用特定的編譯器執行,
例如我們可以指定 :   
  1. #!/bin/bash
複製代碼
而有時候因為需要偵錯(debug), 我們也會利用以下的方式執行 shell script :
  1. $ sh -x ./myscript
複製代碼
或者直接於第一行的 #!/bin/bash 該改為 #!/bin/bash -x , 執行的效果會類似這樣:
  1. $ ./myscript
  2. + ls -aF    (這一行是多出來的, 代表當時shell script執行到這一行)
  3. ./    ../    myscript*     myscript2
複製代碼

使用echo命令

echo是用來顯示輸出的命令, 用幾個範例做個解釋, 後面的章節
將會看到常常利用echo來做些輸出的動作 :
  1. $ echo a b c
  2. a b c
  3. $ echo "a b c"
  4. a b c
  5. $ echo $0
  6. -bash (說明, 這個會依照你使用的shell不同而改變)
複製代碼
同時echo還能搭配以下特殊符號來控制特別輸出 :

  1. \a    alert, beeps the bell
  2. \b    backspace character
  3. \c    suppresses the new line
  4. \f    formfeed character
  5. \n    new-line
  6. \r    return character
  7. \t    tab character
  8. \v    vertical tab character
  9. \\    single backslash character
複製代碼
以下是常用的 echo 範例:

利用 echo 顯示文字:
  1. $ echo "Hello World"
複製代碼

利用 echo 顯示執行動作與結果 (在進行大量批次動作常用) :
  1. echo -n "process $file now ...."
  2. myprog $file > /dev/null
  3. if [ $? -eq 0 ]; then
  4.    echo "OK"
  5. else
  6.    echo "Failed"
  7. fi
複製代碼
利用 echo -n 將游標保留在與 process $file now ... 同一行, 接著根據 myprog $file 的結果, 顯示 OK 或者 Failed,
這樣的效果會變成 :
  1. process xxxx now ....OK 或者 process xxxx now ....Failed
複製代碼

 

臉書網友討論

評分

參與人數 1推廣 +10 收起 理由
woff + 10

查看全部評分

發表於 2014-1-14 12:07:10 | 顯示全部樓層
寫的真不錯~ 你很久沒上來了

哪天出來喝杯茶

版主招募中

 樓主| 發表於 2014-1-14 13:50:25 | 顯示全部樓層
woff 發表於 2014-1-14 12:07
寫的真不錯~ 你很久沒上來了

哪天出來喝杯茶

嗯,好啊


發表於 2014-6-4 12:06:34 | 顯示全部樓層
感謝大大,如果要學習更完整我這邊推薦一本好用 linux shell 學習書,書名:Linux Shell 程式設計實務,臥龍小三 著,很實用讓你大大增加功力。


發表於 2014-6-14 15:12:51 | 顯示全部樓層
我喜欢啊,请继续 支持你


發表於 2014-8-1 15:42:09 | 顯示全部樓層


   不会刷墙的吧


發表於 2014-9-7 22:27:19 | 顯示全部樓層
顶下再看哈











bjcars.net


發表於 2014-10-16 11:25:01 | 顯示全部樓層


  不是很明白


您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2016-12-9 00:07 , Processed in 0.066106 second(s), 25 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表