SlideShare a Scribd company logo
1 of 50
Download to read offline
CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指
                       CCDD:Bash 腳本入門與實例探討
令
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳
                                R.T. Sun
本
迴圈與條件控制


結語

                            February 26, 2013




                                                .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                           ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun             1 Outline
Outline

文字界面之美                 2 文字界面之美
BASH 基本指
令
檔案操作                   3 BASH 基本指令
Pipeline and Pattern
matching
第一個多媒體處理腳
                           檔案操作
本
迴圈與條件控制
                           Pipeline and Pattern matching
結語                         第一個多媒體處理腳本
                           迴圈與條件控制

                       4 結語


                                                                .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                           ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
Why console/terminal

CCDD:Bash
腳本入門與實
                       你有病嗎?有滑鼠不用干嘛用文字界面?
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指
令
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳
本                       山頂洞人才在用文字界面
迴圈與條件控制


結語




                                                   .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                              ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
Keep it simple? Or keep it REPETIVE?

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指
令                      考慮這個狀況:
檔案操作
Pipeline and Pattern
                       你從舊的硬碟救回一個音樂目錄、有上萬個檔案、上千個目
matching
第一個多媒體處理腳              錄都是以如下的格式命名:01-印度 F4-阿霞.wav。
本
迴圈與條件控制


結語




                                                       .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                  ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
Keep it simple? Or keep it REPETIVE?

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun             你需要把這些檔案:
Outline

文字界面之美

BASH 基本指
令
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳
本
迴圈與條件控制


結語




                                                       .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                  ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
Keep it simple? Or keep it REPETIVE?

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun             你需要把這些檔案:
Outline                    轉成 AAC、給你可愛的 i ﹍ WHATEVER 用
文字界面之美

BASH 基本指
令
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳
本
迴圈與條件控制


結語




                                                       .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                  ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
Keep it simple? Or keep it REPETIVE?

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun             你需要把這些檔案:
Outline                    轉成 AAC、給你可愛的 i ﹍ WHATEVER 用
文字界面之美                     打上正確的 id3 tag
BASH 基本指
令
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳
本
迴圈與條件控制


結語




                                                       .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                  ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
Keep it simple? Or keep it REPETIVE?

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun             你需要把這些檔案:
Outline                    轉成 AAC、給你可愛的 i ﹍ WHATEVER 用
文字界面之美                     打上正確的 id3 tag
BASH 基本指
令                          隨著 tag 完成、新檔只用曲名.m4a 的格式
檔案操作
Pipeline and Pattern
matching
                       請問用圖形界面你要操作幾次?
第一個多媒體處理腳
本
迴圈與條件控制


結語




                                                       .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                  ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
寫程式?

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指
令
檔案操作
Pipeline and Pattern
                       寫程式解決!
matching
第一個多媒體處理腳
本
迴圈與條件控制


結語




                                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
寫程式?

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指               喔!有志氣!我欣賞!   !
令
檔案操作                   但是你要寫多少行程式達成這件事情?
Pipeline and Pattern
matching               你需要 K 多少相關 encoder, tagger, 檔案處理等 API?而且
第一個多媒體處理腳
本                      萬一你不熟你確定寫程式會比你手動快嗎?
迴圈與條件控制


結語




                                                    .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                               ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指
                       不行了、我們要絕望了嗎!?
令
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳
本
迴圈與條件控制


結語




                                      .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                 ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
別絕望!我們還有先人的智慧傳承啊!

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指
令
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳
本
迴圈與條件控制


結語




                                        .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                   ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
別絕望!我們還有先人的智慧傳承啊!

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指
令
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳
本
迴圈與條件控制


結語




                                        .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                   ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
電腦科學的「道統」

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline
                       2011 年是一個很悲傷的年份、不少偉大的電腦科學前輩過世
文字界面之美
                       ﹍
BASH 基本指
令                      題外話:不像某 Steve 的過世只留下一堆血汗工廠跟被淘汰的
檔案操作
Pipeline and Pattern
                       gadgets 污染地球﹍
                       John McCarthy 留下了珍貴的 AI 學術基礎,
matching
第一個多媒體處理腳
本
迴圈與條件控制


結語
                       Dennis Ritchie 留下的 C 語言與 UNIX 的設計
                       概念依然毅力不搖、沿用迄今!



                                                .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                           ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
A more elegant weapon from a more civilized age

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指
令                      當我們以為電腦越來越進步、電腦科學對一般人的影響裡卻
檔案操作
Pipeline and Pattern
                       是越來越沒落﹍
matching
第一個多媒體處理腳              所以我們需要接過前輩的智慧﹍
本
迴圈與條件控制


結語




                                                         .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                    ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
A more elegant weapon from a more civilized age

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指
令
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳
本
迴圈與條件控制


結語


                       就好像 Obi-Wan 把光劍交給 Luke 時形容它為:「來自一個更
                       文明時代的更優雅兵器」    。


                                                         .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                    ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
你想唬我?

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指
令
檔案操作
                       可能看到這裡有人以為我在洗腦或傳教﹍
Pipeline and Pattern
matching
                       認為我沒有能力解決剛剛的問題﹍
第一個多媒體處理腳
本
迴圈與條件控制


結語




                                           .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                      ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
你想唬我?

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指               當然沒問題:)
令
檔案操作                   而且這問題絕對不是特例!
Pipeline and Pattern
matching               我們將示範如何下載 youtube 影音並擷取音軌轉成 AAC、如
第一個多媒體處理腳
本                      何利用 bash 與 imagemagic 處理大量的圖形檔案等。
迴圈與條件控制


結語




                                                .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                           ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
BASH

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指
令                      以下我們介紹 GNU BASH、一個最常見的 shell,與如何撰寫
檔案操作
Pipeline and Pattern
                       BASH 的腳本。
matching
第一個多媒體處理腳              只要駕馭了它你便可以駕馭地球上大部分的作業系統!
本
迴圈與條件控制


結語




                                                .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                           ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
基本認知

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美                 每個指令都會有相當多的參數使其功能發生變化,以下不會
BASH 基本指
令
                       介紹指令的全部參數、請養成「有問題問男人 (man)」的習
檔案操作                   慣。
Pipeline and Pattern
matching
第一個多媒體處理腳
                       介紹指令用法時的 notation:
本
迴圈與條件控制
                       <>:可變參數。
結語                     []:非必要參數,代表該指令不需要此參數也能運作。




                                             .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                        ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
基本認知:關於「副檔名」

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline
                        在 UNIX 裡面其實不太強調所謂的副檔名、也就是說檔案名
文字界面之美
                        稱只要想成一個字串,存不存在「副檔名」或者是符不符合
BASH 基本指
令                      「副檔名」的問題並不存在!你只要取「你好記的名稱就好」
檔案操作
Pipeline and Pattern
                        例如:
matching
第一個多媒體處理腳
                        umm...、Hello.to.Janes 都是允許的檔名。
本
迴圈與條件控制                 如果是’.’ 開頭的檔名或目錄會被視為隱藏!
結語                      例如:
                        .xxx, .Billy.love.you




                                              .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                         ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
基本認知:指令與參數

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline
                       通常 bash 的 statement 組成如下:
文字界面之美
                       < 指令 > [< 參數 >] [< 參數 >]
BASH 基本指
令                      參數幾乎都是以’-’ 或’–’ 開頭。
檔案操作
Pipeline and Pattern

                       如果要表示一個 statement 的結束可以用’;’ 表示。
matching
第一個多媒體處理腳                                             (同一行內
本
迴圈與條件控制                或便於閱讀)
結語

                       # 開頭的行會被視為註解。




                                                        .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                   ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
基本檔案操作:cd, ls, mkdir, rmdir

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline
                       在 MS-DOS 底下就有同樣的檔案操作指令、非常的直覺易
文字界面之美
                       懂,透過示範方式帶過。
BASH 基本指
令                      使用方法皆非常簡單:
檔案操作
Pipeline and Pattern
                       ls [<path>]: list 某路徑
matching
第一個多媒體處理腳
                       cd <path>: change directory 到某路徑
本
迴圈與條件控制                mkdir <directory name>
結語                     rmdir <directory name>
                       mv <file/dir> <destination>




                                                  .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                             ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
基本檔案操作:mv, cp, rm

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指               mv:Move 之意、cp:copy 之意、rm:remove 之意
令
檔案操作                   mv <source path> <destination path>
Pipeline and Pattern
matching               cp <source path> <destination path>
第一個多媒體處理腳
本                      rm <source path>
迴圈與條件控制


結語




                                                       .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                  ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
萬用字元: * & ?

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美
                       剛學習檔案處理時、萬用字元的應用會讓你的工作更得心應
BASH 基本指               手。
令
檔案操作
                       ’*’ 代表: 「任意長度」的任意字元(包含長度 0)           ;’?’ 代表:
Pipeline and Pattern
matching
                       一個 character 的任意字元。
第一個多媒體處理腳
本                      例如:ls *.pdf 會列出「所有以.pdf 結尾檔名的檔案」          、包
迴圈與條件控制
                       含’.pdf’ 這個檔名。ls ?.pdf 可能會列出 1.pdf, a.pdf, b.pdf
結語
                       .pdf 等等﹍




                                                       .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                  ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
進階檔案搜尋:find

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美                 find 可以依照各種檔案條件遞迴式(鑽進每個目錄)搜尋某
BASH 基本指
令
                       特定目錄底下符合者、包含權限、修改時間、檔案名稱﹍詳
檔案操作                   情請問男人。
Pipeline and Pattern
matching
第一個多媒體處理腳
                       最常用的是 -name 條件:
本
迴圈與條件控制
                       find <path> -name <pattern>
結語                     例如:find /Documents -name ’*.pdf’




                                              .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                         ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
來複習一下你的 C 語言:File descriptor

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美                 記得什麼叫 stdout, stdin 跟 stderr 嗎?記不記得 open() 會回
BASH 基本指
令
                       傳一個叫 file descriptor 的碗糕嗎?
檔案操作                   再怎麼不熟、至少用過 printf、就是直接輸出到 stdout 那個
Pipeline and Pattern
matching
第一個多媒體處理腳
                       啦!
本
迴圈與條件控制
                       (其實這個原本應該先學 UNIX 再來教的、結果現在都變成在
結語                     C 語言裡面教﹍ TT̂)




                                                       .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                  ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
來複習一下你的 C 語言:File descriptor

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指
令
檔案操作
                       如果你還是沒啥 fu、就想成一個程式的 I/O 最少有三個
Pipeline and Pattern
matching
                       頻道:輸出、輸入跟錯誤訊息!!
第一個多媒體處理腳
本
迴圈與條件控制


結語




                                                 .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                            ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
那跟 bash 又何干?

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美
                       Pipeline 是 UNIX 系統的重大發明之一,BASH 也有採用連
BASH 基本指               IBM 到微軟都競相仿效﹍如果你覺得「哪有啊?聽都沒聽
令
檔案操作
                       過」的話﹍
Pipeline and Pattern
matching
第一個多媒體處理腳
本
迴圈與條件控制
                       舉例來講,你可能想要作以下工作:搜尋一個目錄底下所有
結語
                       的 JPG 檔、然後匯出結果到一個文字檔作為清單。




                                                  .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                             ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
在 windows 底下

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美
                       如果用 command prompt 的話:
BASH 基本指
令                      dir /s /b <path>*.jpg » list.txt
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳
本
迴圈與條件控制
                       其實這就是 pipeline 觀念延伸的 redirection
結語




                                                               .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                          ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
pipeline 概念

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun
                       讓多個小型應用程式串連起來、完成一個最接近使用者需求
Outline
                       的任務。
文字界面之美

BASH 基本指
令                      將前者的輸出傳送到後者成為後者的輸入、如此頭尾相連就
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳
本
迴圈與條件控制


結語




                       像﹍人形蜈蚣(被巴)


                                           .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                      ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
應用

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline
                       「你上次那個軟體編譯結果怎麼樣了」
文字界面之美

BASH 基本指
令                      「你都不知道那軟體雖然編譯起來了、但是 WARNING 好多
檔案操作
Pipeline and Pattern
                        喔﹍」
matching
第一個多媒體處理腳
本
迴圈與條件控制                「幾行?」
結語

                       你該怎麼作呢?




                                              .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                         ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
行前準備:wc

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline                wc 不是廁所、他的意思是 word count
文字界面之美

BASH 基本指               一般而言可以計算幾個 character,如果接上參數 -l,則可以
令
檔案操作                   計算有幾行(幾個換行)
Pipeline and Pattern
matching
第一個多媒體處理腳
本
迴圈與條件控制
                       如果要計算一個文字檔裡面的行號、可以用以下指令:
結語



                       wc -l < 檔名 >



                                                   .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                              ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
行前準備:grep

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun
                       grep 是一個可以擷取符合 pattern 文字列出來的工具,原始
Outline
                       也是 Kenneth 大大自己寫的。
文字界面之美

BASH 基本指
令                      利用 grep 來過濾 ls 指令輸出、擷取出任何 b 開頭(大小寫
檔案操作
Pipeline and Pattern   不分)的檔案名稱:
matching
第一個多媒體處理腳
本
迴圈與條件控制
                       ls|grep ’[B|b].*’
結語


                       這裡的’.’ 就是代表任意一個字元、* 後面代表任意重複次數、
                       [B|b] 代表是 b 或 B 兩者皆可



                                                .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                           ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
擷取編譯時的 warning 訊息並計算行號示範

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美
                       請觀察一下以下加上 2>&1、grep 與 wc 之後的輸出變化。
BASH 基本指
                       make 2>&1|grep warning|wc -l
令
檔案操作
Pipeline and Pattern
matching
                       2>&1 代表:把 stderr 輸出導向 stdout、也只有這樣才能
第一個多媒體處理腳
本                      夠接給 grep 或 wc
迴圈與條件控制


結語
                       grep 負責擷取含有 warning 的行並往下傳給 wc。




                                                  .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                             ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
你可能在想:

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline
                       你看吧!又在跟文字打架、終端機就是對多媒體沒轍吧!?
文字界面之美

BASH 基本指
令
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳
本
迴圈與條件控制


結語




                                            .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                       ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
看到 youtube 影片的音樂很喜歡怎麼取出來編
                       碼?
CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指               的確有部份網站有提供這種功能啦、但是﹍
令
檔案操作
Pipeline and Pattern
matching               靠山也會倒、好幾個這類型網站已經倒過了、還是自己 DIY
第一個多媒體處理腳
本
迴圈與條件控制
                       吧!
結語




                                             .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                        ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
行前準備:youtube-dl

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美                 youtube-dl 使用方法非常直覺易懂:
BASH 基本指
令
檔案操作
Pipeline and Pattern
                       youtube-dl <youtube link>
matching
第一個多媒體處理腳
本
迴圈與條件控制
                       就可以下載該路徑存在的 youtube 影片。通常加上’-t’、可
結語                     以在檔名使用該影片原標題!




                                                        .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                   ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
行前準備:mplayer

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun
                       mplayer 除了能夠播放非常多的影音格式以外、也是 rip 音軌
Outline
                       與剪接的好幫手!
文字界面之美

BASH 基本指
令                      -ss <time> 參數可以指定開始播放的時間。
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳
本
                       -endpos <time> 參數可以指定停止播放時間。
迴圈與條件控制


結語
                       -dumpaudio 可以擷取出音軌!-dumpfile <filename> 可以

                       指定輸出檔名!



                                                    .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                               ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
行前準備:faad/faac

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline                還沒完喔、很遺憾的﹍裡面的 AAC stream 不是一般的 m4a
文字界面之美                 封裝格式,目前由於 mp4tools 取得有困難,所以我們需要解
BASH 基本指               碼他、並用 faac 重新編碼成 m4a 檔!
令
檔案操作
Pipeline and Pattern
matching               faad <input aac> -o <output file> 會把輸入 aac stream 解碼
第一個多媒體處理腳
本                      成為指定檔名的 wav 檔
迴圈與條件控制


結語
                       faac <input wav> -o <output m4a> -w 會把 wav 編碼成 aac、
                       -w 會把 aac steam 包入 mpeg4 封裝。



                                                          .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                     ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
本番!

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun
                       以下 shell 命名為 dumpYoutubeAudio.sh、使用方法為:
Outline                dumpYoutubeAudio.sh <youtube URL>
文字界面之美                 如果 Youtube 標題命名為 Gamer Poop 的檔案就會轉成
BASH 基本指
令
                       Gamer Poop.m4a 的 AAC 檔
檔案操作
Pipeline and Pattern
matching               INPUTURL=”$1”
第一個多媒體處理腳
本                      INPUT=‘youtube-dl $INPUTURL -o ”%(title)s.%(ext)s”|grep
迴圈與條件控制
                       Destination|sed ’s/.*: //g’‘
結語
                       OUTPUT=‘basename ”$INPUT” .mp4‘.m4a
                       mplayer2 ”$INPUT” -dumpaudio -dumpfile out.raw
                       faad out.raw
                       faac out.wav -o ”$OUTPUT” -w


                                                                 .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                            ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
for 迴圈

CCDD:Bash
腳本入門與實
  例探討
                       bash 的 for 迴圈採條列式遞進,也就是變數值可以想成一張
  R.T. Sun
                       清單,每執行一次就換下一個值。
Outline
                       請注意 for 後面有個分號、還有一個 do 代表要作的事情開始
文字界面之美
                       條列﹍以 done; 結尾
BASH 基本指
令                      直接看例子:
檔案操作
Pipeline and Pattern
matching
第一個多媒體處理腳              for i in 1 2 3 4; do
本
迴圈與條件控制                     echo $i;
結語                     done;

                       會輸出:

                       1234
                                                   .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                              ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
整數遞進 -seq

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美
                       上述迴圈跟 seq 1 4 的結果是一樣的、也可以把上述迴圈改成
BASH 基本指
令
檔案操作
                       for i in $(seq 1 4); do
Pipeline and Pattern
matching
                            echo $i;
第一個多媒體處理腳
本                      done
迴圈與條件控制


結語
                       結果也同。




                                                      .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                 ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
這樣有意義嗎?

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美
                       有囉~舉例而言:你朋友的網站上有上百張連號照片、你很
BASH 基本指               想一次抓下來﹍
令
檔案操作
Pipeline and Pattern
matching               for i in $(seq 1 100); do
第一個多媒體處理腳
本                           wget http://www.friendsite.idv/pic$i.jpg
                       done
迴圈與條件控制


結語




                                                                  .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                             ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
if 判斷

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun
                       跟一般程式語言用的方式大同小異、判斷式外面是 [](注意 [
Outline
                       , ] 要各有一個空格!          )
文字界面之美

BASH 基本指
                       if [ <condition> ]; then
令                           #something happenedd here...
檔案操作
Pipeline and Pattern
matching
                       fi
第一個多媒體處理腳
本
                       ,變化很多只講幾個常用的:
迴圈與條件控制


結語
                       [ STR1 == STR2 ] 如果兩字串變數相同。
                       != 同樣適用代表不相同;如果是 [ STR1 > STR2 ] 代表「排
                       序上 STR1 比 STR2 在後」



                                                  .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                             ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
if 判斷:整數比較

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指               [ var1 ??? var2 ] 代表如果兩數比較結果、?? 變化場合如下:
令
檔案操作                   -eq 代表相等、-ne 代表不相等
Pipeline and Pattern
matching               -gt 代表大於、-lt 代表小於
第一個多媒體處理腳
本                      -ge 代表大於等於、-le 代表小於等於。
迴圈與條件控制


結語




                                                   .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                              ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
範例:loly.sh

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline                if [ $losslessFormat -eq 1 ]; then
文字界面之美                 mac ”$1” /tmp/DSC-temp.wav -d;
BASH 基本指               elif [ $losslessFormat -eq 2 ]; then
令
檔案操作                   flac -d ”$1” -o /tmp/DSC-temp.wav;
Pipeline and Pattern
matching               ...
第一個多媒體處理腳
本                      fi
迴圈與條件控制


結語
                       上述依照 lesslessFormat 的不同、採取不同解壓縮無損音訊的
                       方法。



                                                                   .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                              ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
處理圖片的話﹍

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美

BASH 基本指               利用 imagemagick 可以達成調整影像對比亮度縮放、轉換格
令
檔案操作                   式甚至拼排疊合影像﹍
Pipeline and Pattern
matching
第一個多媒體處理腳
本
迴圈與條件控制
                       只要你有心他幾乎無所不能!
結語




                                                .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                           ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
範例:轉換所有 jpg 檔並且調暗

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline

文字界面之美
                       我相信在其他平台上一定都有大量處理圖片的轉檔工具,但
BASH 基本指               是幾乎沒有任何一個足以同時修改圖片內容等畢其攻於一役
令
檔案操作
                       者﹍
Pipeline and Pattern
matching
第一個多媒體處理腳
本                      for i in ‘ls *.jpg‘;
迴圈與條件控制
                           do convert $i -brightness-contrast -60 $i.png;
結語
                       done




                                                                   .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                              ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
Power tool for power users.

CCDD:Bash
腳本入門與實
  例探討

  R.T. Sun

Outline
                       相信經過上述的介紹、各位已經發覺 UNIX 界的一般應用程
文字界面之美
                       式設計哲學了、那就是:
BASH 基本指
令
檔案操作
Pipeline and Pattern
                       簡化應用程式到如同一個零件、讓使用者裝配出最適合自己
matching
第一個多媒體處理腳              的應用!
本
迴圈與條件控制


結語                     希望短短的介紹能夠啟發各位對 Bash 等各類 shell 的興趣了。
                       謝謝




                                                          .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                     ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..

More Related Content

Viewers also liked

Diseño en el deporte
Diseño en el deporteDiseño en el deporte
Diseño en el deportepacaparo
 
Presentation on rajasthan solar thermal rf s
Presentation on rajasthan solar thermal rf sPresentation on rajasthan solar thermal rf s
Presentation on rajasthan solar thermal rf svaibhavtuls
 
Infographic – How To kick-Start Your Weight Loss Journey: 7 Supplements
Infographic – How To kick-Start Your Weight Loss Journey: 7 SupplementsInfographic – How To kick-Start Your Weight Loss Journey: 7 Supplements
Infographic – How To kick-Start Your Weight Loss Journey: 7 SupplementsTim Breasnan
 
Actividad línea del tiempo
Actividad línea del tiempoActividad línea del tiempo
Actividad línea del tiempomaestrachamuca
 
InfoSocietyDays2016_Beat_Kobler
InfoSocietyDays2016_Beat_KoblerInfoSocietyDays2016_Beat_Kobler
InfoSocietyDays2016_Beat_KoblerInfoSocietyDays
 

Viewers also liked (10)

CEU lecture 6
CEU lecture 6CEU lecture 6
CEU lecture 6
 
Long term payday loans
Long term payday loansLong term payday loans
Long term payday loans
 
Diseño en el deporte
Diseño en el deporteDiseño en el deporte
Diseño en el deporte
 
bls
blsbls
bls
 
Presentation on rajasthan solar thermal rf s
Presentation on rajasthan solar thermal rf sPresentation on rajasthan solar thermal rf s
Presentation on rajasthan solar thermal rf s
 
Taller 2 informatica kosee
Taller 2 informatica koseeTaller 2 informatica kosee
Taller 2 informatica kosee
 
Tableau des tarifs
Tableau des tarifsTableau des tarifs
Tableau des tarifs
 
Infographic – How To kick-Start Your Weight Loss Journey: 7 Supplements
Infographic – How To kick-Start Your Weight Loss Journey: 7 SupplementsInfographic – How To kick-Start Your Weight Loss Journey: 7 Supplements
Infographic – How To kick-Start Your Weight Loss Journey: 7 Supplements
 
Actividad línea del tiempo
Actividad línea del tiempoActividad línea del tiempo
Actividad línea del tiempo
 
InfoSocietyDays2016_Beat_Kobler
InfoSocietyDays2016_Beat_KoblerInfoSocietyDays2016_Beat_Kobler
InfoSocietyDays2016_Beat_Kobler
 

Similar to [CCDD2013w] bash腳本入門、實例應用探討 by R.T. Sun

PostgreSQL Introduction V0.1
PostgreSQL Introduction V0.1PostgreSQL Introduction V0.1
PostgreSQL Introduction V0.1March Liu
 
Python 数据库技术第三讲
Python 数据库技术第三讲Python 数据库技术第三讲
Python 数据库技术第三讲March Liu
 
8门编程语言的设计思考
8门编程语言的设计思考8门编程语言的设计思考
8门编程语言的设计思考Ray Song
 
网络收音机-毕业论文
网络收音机-毕业论文网络收音机-毕业论文
网络收音机-毕业论文rgw5267
 
No more fractures MingLiu font!
No more fractures MingLiu font!No more fractures MingLiu font!
No more fractures MingLiu font!Yuan CHAO
 
Unixtoolbox zh cn
Unixtoolbox zh cnUnixtoolbox zh cn
Unixtoolbox zh cnxdboy2006
 
Vhdl教程
Vhdl教程Vhdl教程
Vhdl教程Mac_X
 
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure National Cheng Kung University
 
Crosstool ng
Crosstool ngCrosstool ng
Crosstool ngcri fan
 
Crosstool ng
Crosstool ngCrosstool ng
Crosstool ngcri fan
 
分布式索引构建
分布式索引构建分布式索引构建
分布式索引构建智杰 付
 
R Language definition
R Language definitionR Language definition
R Language definition湘云 黄
 
C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述Xiaozhe Wang
 
系統程式 -- 第 12 章
系統程式 -- 第 12 章系統程式 -- 第 12 章
系統程式 -- 第 12 章鍾誠 陳鍾誠
 
Tiny6410um hw-20101026
Tiny6410um hw-20101026Tiny6410um hw-20101026
Tiny6410um hw-20101026syed_sifa
 
Xcode tutorial
Xcode tutorialXcode tutorial
Xcode tutorialMarch Liu
 
Inpage urdu tutorial
Inpage urdu tutorialInpage urdu tutorial
Inpage urdu tutorialsumairhisbani
 

Similar to [CCDD2013w] bash腳本入門、實例應用探討 by R.T. Sun (20)

PostgreSQL Introduction V0.1
PostgreSQL Introduction V0.1PostgreSQL Introduction V0.1
PostgreSQL Introduction V0.1
 
Python 数据库技术第三讲
Python 数据库技术第三讲Python 数据库技术第三讲
Python 数据库技术第三讲
 
8门编程语言的设计思考
8门编程语言的设计思考8门编程语言的设计思考
8门编程语言的设计思考
 
网络收音机-毕业论文
网络收音机-毕业论文网络收音机-毕业论文
网络收音机-毕业论文
 
No more fractures MingLiu font!
No more fractures MingLiu font!No more fractures MingLiu font!
No more fractures MingLiu font!
 
Unixtoolbox zh cn
Unixtoolbox zh cnUnixtoolbox zh cn
Unixtoolbox zh cn
 
unixtoolbox_zh_CN
unixtoolbox_zh_CNunixtoolbox_zh_CN
unixtoolbox_zh_CN
 
Vhdl教程
Vhdl教程Vhdl教程
Vhdl教程
 
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
 
Crosstool ng
Crosstool ngCrosstool ng
Crosstool ng
 
Crosstool ng
Crosstool ngCrosstool ng
Crosstool ng
 
分布式索引构建
分布式索引构建分布式索引构建
分布式索引构建
 
Min book
Min bookMin book
Min book
 
Ipaq with linux
Ipaq with linuxIpaq with linux
Ipaq with linux
 
R Language definition
R Language definitionR Language definition
R Language definition
 
C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述
 
系統程式 -- 第 12 章
系統程式 -- 第 12 章系統程式 -- 第 12 章
系統程式 -- 第 12 章
 
Tiny6410um hw-20101026
Tiny6410um hw-20101026Tiny6410um hw-20101026
Tiny6410um hw-20101026
 
Xcode tutorial
Xcode tutorialXcode tutorial
Xcode tutorial
 
Inpage urdu tutorial
Inpage urdu tutorialInpage urdu tutorial
Inpage urdu tutorial
 

[CCDD2013w] bash腳本入門、實例應用探討 by R.T. Sun

  • 1. CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 CCDD:Bash 腳本入門與實例探討 令 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 R.T. Sun 本 迴圈與條件控制 結語 February 26, 2013 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 2. CCDD:Bash 腳本入門與實 例探討 R.T. Sun 1 Outline Outline 文字界面之美 2 文字界面之美 BASH 基本指 令 檔案操作 3 BASH 基本指令 Pipeline and Pattern matching 第一個多媒體處理腳 檔案操作 本 迴圈與條件控制 Pipeline and Pattern matching 結語 第一個多媒體處理腳本 迴圈與條件控制 4 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 3. Why console/terminal CCDD:Bash 腳本入門與實 你有病嗎?有滑鼠不用干嘛用文字界面? 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 令 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 本 山頂洞人才在用文字界面 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 4. Keep it simple? Or keep it REPETIVE? CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 令 考慮這個狀況: 檔案操作 Pipeline and Pattern 你從舊的硬碟救回一個音樂目錄、有上萬個檔案、上千個目 matching 第一個多媒體處理腳 錄都是以如下的格式命名:01-印度 F4-阿霞.wav。 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 5. Keep it simple? Or keep it REPETIVE? CCDD:Bash 腳本入門與實 例探討 R.T. Sun 你需要把這些檔案: Outline 文字界面之美 BASH 基本指 令 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 6. Keep it simple? Or keep it REPETIVE? CCDD:Bash 腳本入門與實 例探討 R.T. Sun 你需要把這些檔案: Outline 轉成 AAC、給你可愛的 i ﹍ WHATEVER 用 文字界面之美 BASH 基本指 令 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 7. Keep it simple? Or keep it REPETIVE? CCDD:Bash 腳本入門與實 例探討 R.T. Sun 你需要把這些檔案: Outline 轉成 AAC、給你可愛的 i ﹍ WHATEVER 用 文字界面之美 打上正確的 id3 tag BASH 基本指 令 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 8. Keep it simple? Or keep it REPETIVE? CCDD:Bash 腳本入門與實 例探討 R.T. Sun 你需要把這些檔案: Outline 轉成 AAC、給你可愛的 i ﹍ WHATEVER 用 文字界面之美 打上正確的 id3 tag BASH 基本指 令 隨著 tag 完成、新檔只用曲名.m4a 的格式 檔案操作 Pipeline and Pattern matching 請問用圖形界面你要操作幾次? 第一個多媒體處理腳 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 9. 寫程式? CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 令 檔案操作 Pipeline and Pattern 寫程式解決! matching 第一個多媒體處理腳 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 10. 寫程式? CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 喔!有志氣!我欣賞! ! 令 檔案操作 但是你要寫多少行程式達成這件事情? Pipeline and Pattern matching 你需要 K 多少相關 encoder, tagger, 檔案處理等 API?而且 第一個多媒體處理腳 本 萬一你不熟你確定寫程式會比你手動快嗎? 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 11. CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 不行了、我們要絕望了嗎!? 令 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 12. 別絕望!我們還有先人的智慧傳承啊! CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 令 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 13. 別絕望!我們還有先人的智慧傳承啊! CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 令 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 14. 電腦科學的「道統」 CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 2011 年是一個很悲傷的年份、不少偉大的電腦科學前輩過世 文字界面之美 ﹍ BASH 基本指 令 題外話:不像某 Steve 的過世只留下一堆血汗工廠跟被淘汰的 檔案操作 Pipeline and Pattern gadgets 污染地球﹍ John McCarthy 留下了珍貴的 AI 學術基礎, matching 第一個多媒體處理腳 本 迴圈與條件控制 結語 Dennis Ritchie 留下的 C 語言與 UNIX 的設計 概念依然毅力不搖、沿用迄今! . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 15. A more elegant weapon from a more civilized age CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 令 當我們以為電腦越來越進步、電腦科學對一般人的影響裡卻 檔案操作 Pipeline and Pattern 是越來越沒落﹍ matching 第一個多媒體處理腳 所以我們需要接過前輩的智慧﹍ 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 16. A more elegant weapon from a more civilized age CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 令 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 本 迴圈與條件控制 結語 就好像 Obi-Wan 把光劍交給 Luke 時形容它為:「來自一個更 文明時代的更優雅兵器」 。 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 17. 你想唬我? CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 令 檔案操作 可能看到這裡有人以為我在洗腦或傳教﹍ Pipeline and Pattern matching 認為我沒有能力解決剛剛的問題﹍ 第一個多媒體處理腳 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 18. 你想唬我? CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 當然沒問題:) 令 檔案操作 而且這問題絕對不是特例! Pipeline and Pattern matching 我們將示範如何下載 youtube 影音並擷取音軌轉成 AAC、如 第一個多媒體處理腳 本 何利用 bash 與 imagemagic 處理大量的圖形檔案等。 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 19. BASH CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 令 以下我們介紹 GNU BASH、一個最常見的 shell,與如何撰寫 檔案操作 Pipeline and Pattern BASH 的腳本。 matching 第一個多媒體處理腳 只要駕馭了它你便可以駕馭地球上大部分的作業系統! 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 20. 基本認知 CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 每個指令都會有相當多的參數使其功能發生變化,以下不會 BASH 基本指 令 介紹指令的全部參數、請養成「有問題問男人 (man)」的習 檔案操作 慣。 Pipeline and Pattern matching 第一個多媒體處理腳 介紹指令用法時的 notation: 本 迴圈與條件控制 <>:可變參數。 結語 []:非必要參數,代表該指令不需要此參數也能運作。 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 21. 基本認知:關於「副檔名」 CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 在 UNIX 裡面其實不太強調所謂的副檔名、也就是說檔案名 文字界面之美 稱只要想成一個字串,存不存在「副檔名」或者是符不符合 BASH 基本指 令 「副檔名」的問題並不存在!你只要取「你好記的名稱就好」 檔案操作 Pipeline and Pattern 例如: matching 第一個多媒體處理腳 umm...、Hello.to.Janes 都是允許的檔名。 本 迴圈與條件控制 如果是’.’ 開頭的檔名或目錄會被視為隱藏! 結語 例如: .xxx, .Billy.love.you . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 22. 基本認知:指令與參數 CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 通常 bash 的 statement 組成如下: 文字界面之美 < 指令 > [< 參數 >] [< 參數 >] BASH 基本指 令 參數幾乎都是以’-’ 或’–’ 開頭。 檔案操作 Pipeline and Pattern 如果要表示一個 statement 的結束可以用’;’ 表示。 matching 第一個多媒體處理腳 (同一行內 本 迴圈與條件控制 或便於閱讀) 結語 # 開頭的行會被視為註解。 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 23. 基本檔案操作:cd, ls, mkdir, rmdir CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 在 MS-DOS 底下就有同樣的檔案操作指令、非常的直覺易 文字界面之美 懂,透過示範方式帶過。 BASH 基本指 令 使用方法皆非常簡單: 檔案操作 Pipeline and Pattern ls [<path>]: list 某路徑 matching 第一個多媒體處理腳 cd <path>: change directory 到某路徑 本 迴圈與條件控制 mkdir <directory name> 結語 rmdir <directory name> mv <file/dir> <destination> . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 24. 基本檔案操作:mv, cp, rm CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 mv:Move 之意、cp:copy 之意、rm:remove 之意 令 檔案操作 mv <source path> <destination path> Pipeline and Pattern matching cp <source path> <destination path> 第一個多媒體處理腳 本 rm <source path> 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 25. 萬用字元: * & ? CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 剛學習檔案處理時、萬用字元的應用會讓你的工作更得心應 BASH 基本指 手。 令 檔案操作 ’*’ 代表: 「任意長度」的任意字元(包含長度 0) ;’?’ 代表: Pipeline and Pattern matching 一個 character 的任意字元。 第一個多媒體處理腳 本 例如:ls *.pdf 會列出「所有以.pdf 結尾檔名的檔案」 、包 迴圈與條件控制 含’.pdf’ 這個檔名。ls ?.pdf 可能會列出 1.pdf, a.pdf, b.pdf 結語 .pdf 等等﹍ . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 26. 進階檔案搜尋:find CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 find 可以依照各種檔案條件遞迴式(鑽進每個目錄)搜尋某 BASH 基本指 令 特定目錄底下符合者、包含權限、修改時間、檔案名稱﹍詳 檔案操作 情請問男人。 Pipeline and Pattern matching 第一個多媒體處理腳 最常用的是 -name 條件: 本 迴圈與條件控制 find <path> -name <pattern> 結語 例如:find /Documents -name ’*.pdf’ . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 27. 來複習一下你的 C 語言:File descriptor CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 記得什麼叫 stdout, stdin 跟 stderr 嗎?記不記得 open() 會回 BASH 基本指 令 傳一個叫 file descriptor 的碗糕嗎? 檔案操作 再怎麼不熟、至少用過 printf、就是直接輸出到 stdout 那個 Pipeline and Pattern matching 第一個多媒體處理腳 啦! 本 迴圈與條件控制 (其實這個原本應該先學 UNIX 再來教的、結果現在都變成在 結語 C 語言裡面教﹍ TT̂) . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 28. 來複習一下你的 C 語言:File descriptor CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 令 檔案操作 如果你還是沒啥 fu、就想成一個程式的 I/O 最少有三個 Pipeline and Pattern matching 頻道:輸出、輸入跟錯誤訊息!! 第一個多媒體處理腳 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 29. 那跟 bash 又何干? CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 Pipeline 是 UNIX 系統的重大發明之一,BASH 也有採用連 BASH 基本指 IBM 到微軟都競相仿效﹍如果你覺得「哪有啊?聽都沒聽 令 檔案操作 過」的話﹍ Pipeline and Pattern matching 第一個多媒體處理腳 本 迴圈與條件控制 舉例來講,你可能想要作以下工作:搜尋一個目錄底下所有 結語 的 JPG 檔、然後匯出結果到一個文字檔作為清單。 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 30. 在 windows 底下 CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 如果用 command prompt 的話: BASH 基本指 令 dir /s /b <path>*.jpg » list.txt 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 本 迴圈與條件控制 其實這就是 pipeline 觀念延伸的 redirection 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 31. pipeline 概念 CCDD:Bash 腳本入門與實 例探討 R.T. Sun 讓多個小型應用程式串連起來、完成一個最接近使用者需求 Outline 的任務。 文字界面之美 BASH 基本指 令 將前者的輸出傳送到後者成為後者的輸入、如此頭尾相連就 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 本 迴圈與條件控制 結語 像﹍人形蜈蚣(被巴) . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 32. 應用 CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 「你上次那個軟體編譯結果怎麼樣了」 文字界面之美 BASH 基本指 令 「你都不知道那軟體雖然編譯起來了、但是 WARNING 好多 檔案操作 Pipeline and Pattern 喔﹍」 matching 第一個多媒體處理腳 本 迴圈與條件控制 「幾行?」 結語 你該怎麼作呢? . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 33. 行前準備:wc CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline wc 不是廁所、他的意思是 word count 文字界面之美 BASH 基本指 一般而言可以計算幾個 character,如果接上參數 -l,則可以 令 檔案操作 計算有幾行(幾個換行) Pipeline and Pattern matching 第一個多媒體處理腳 本 迴圈與條件控制 如果要計算一個文字檔裡面的行號、可以用以下指令: 結語 wc -l < 檔名 > . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 34. 行前準備:grep CCDD:Bash 腳本入門與實 例探討 R.T. Sun grep 是一個可以擷取符合 pattern 文字列出來的工具,原始 Outline 也是 Kenneth 大大自己寫的。 文字界面之美 BASH 基本指 令 利用 grep 來過濾 ls 指令輸出、擷取出任何 b 開頭(大小寫 檔案操作 Pipeline and Pattern 不分)的檔案名稱: matching 第一個多媒體處理腳 本 迴圈與條件控制 ls|grep ’[B|b].*’ 結語 這裡的’.’ 就是代表任意一個字元、* 後面代表任意重複次數、 [B|b] 代表是 b 或 B 兩者皆可 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 35. 擷取編譯時的 warning 訊息並計算行號示範 CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 請觀察一下以下加上 2>&1、grep 與 wc 之後的輸出變化。 BASH 基本指 make 2>&1|grep warning|wc -l 令 檔案操作 Pipeline and Pattern matching 2>&1 代表:把 stderr 輸出導向 stdout、也只有這樣才能 第一個多媒體處理腳 本 夠接給 grep 或 wc 迴圈與條件控制 結語 grep 負責擷取含有 warning 的行並往下傳給 wc。 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 36. 你可能在想: CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 你看吧!又在跟文字打架、終端機就是對多媒體沒轍吧!? 文字界面之美 BASH 基本指 令 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 本 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 37. 看到 youtube 影片的音樂很喜歡怎麼取出來編 碼? CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 的確有部份網站有提供這種功能啦、但是﹍ 令 檔案操作 Pipeline and Pattern matching 靠山也會倒、好幾個這類型網站已經倒過了、還是自己 DIY 第一個多媒體處理腳 本 迴圈與條件控制 吧! 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 38. 行前準備:youtube-dl CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 youtube-dl 使用方法非常直覺易懂: BASH 基本指 令 檔案操作 Pipeline and Pattern youtube-dl <youtube link> matching 第一個多媒體處理腳 本 迴圈與條件控制 就可以下載該路徑存在的 youtube 影片。通常加上’-t’、可 結語 以在檔名使用該影片原標題! . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 39. 行前準備:mplayer CCDD:Bash 腳本入門與實 例探討 R.T. Sun mplayer 除了能夠播放非常多的影音格式以外、也是 rip 音軌 Outline 與剪接的好幫手! 文字界面之美 BASH 基本指 令 -ss <time> 參數可以指定開始播放的時間。 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 本 -endpos <time> 參數可以指定停止播放時間。 迴圈與條件控制 結語 -dumpaudio 可以擷取出音軌!-dumpfile <filename> 可以 指定輸出檔名! . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 40. 行前準備:faad/faac CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 還沒完喔、很遺憾的﹍裡面的 AAC stream 不是一般的 m4a 文字界面之美 封裝格式,目前由於 mp4tools 取得有困難,所以我們需要解 BASH 基本指 碼他、並用 faac 重新編碼成 m4a 檔! 令 檔案操作 Pipeline and Pattern matching faad <input aac> -o <output file> 會把輸入 aac stream 解碼 第一個多媒體處理腳 本 成為指定檔名的 wav 檔 迴圈與條件控制 結語 faac <input wav> -o <output m4a> -w 會把 wav 編碼成 aac、 -w 會把 aac steam 包入 mpeg4 封裝。 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 41. 本番! CCDD:Bash 腳本入門與實 例探討 R.T. Sun 以下 shell 命名為 dumpYoutubeAudio.sh、使用方法為: Outline dumpYoutubeAudio.sh <youtube URL> 文字界面之美 如果 Youtube 標題命名為 Gamer Poop 的檔案就會轉成 BASH 基本指 令 Gamer Poop.m4a 的 AAC 檔 檔案操作 Pipeline and Pattern matching INPUTURL=”$1” 第一個多媒體處理腳 本 INPUT=‘youtube-dl $INPUTURL -o ”%(title)s.%(ext)s”|grep 迴圈與條件控制 Destination|sed ’s/.*: //g’‘ 結語 OUTPUT=‘basename ”$INPUT” .mp4‘.m4a mplayer2 ”$INPUT” -dumpaudio -dumpfile out.raw faad out.raw faac out.wav -o ”$OUTPUT” -w . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 42. for 迴圈 CCDD:Bash 腳本入門與實 例探討 bash 的 for 迴圈採條列式遞進,也就是變數值可以想成一張 R.T. Sun 清單,每執行一次就換下一個值。 Outline 請注意 for 後面有個分號、還有一個 do 代表要作的事情開始 文字界面之美 條列﹍以 done; 結尾 BASH 基本指 令 直接看例子: 檔案操作 Pipeline and Pattern matching 第一個多媒體處理腳 for i in 1 2 3 4; do 本 迴圈與條件控制 echo $i; 結語 done; 會輸出: 1234 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 43. 整數遞進 -seq CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 上述迴圈跟 seq 1 4 的結果是一樣的、也可以把上述迴圈改成 BASH 基本指 令 檔案操作 for i in $(seq 1 4); do Pipeline and Pattern matching echo $i; 第一個多媒體處理腳 本 done 迴圈與條件控制 結語 結果也同。 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 44. 這樣有意義嗎? CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 有囉~舉例而言:你朋友的網站上有上百張連號照片、你很 BASH 基本指 想一次抓下來﹍ 令 檔案操作 Pipeline and Pattern matching for i in $(seq 1 100); do 第一個多媒體處理腳 本 wget http://www.friendsite.idv/pic$i.jpg done 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 45. if 判斷 CCDD:Bash 腳本入門與實 例探討 R.T. Sun 跟一般程式語言用的方式大同小異、判斷式外面是 [](注意 [ Outline , ] 要各有一個空格! ) 文字界面之美 BASH 基本指 if [ <condition> ]; then 令 #something happenedd here... 檔案操作 Pipeline and Pattern matching fi 第一個多媒體處理腳 本 ,變化很多只講幾個常用的: 迴圈與條件控制 結語 [ STR1 == STR2 ] 如果兩字串變數相同。 != 同樣適用代表不相同;如果是 [ STR1 > STR2 ] 代表「排 序上 STR1 比 STR2 在後」 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 46. if 判斷:整數比較 CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 [ var1 ??? var2 ] 代表如果兩數比較結果、?? 變化場合如下: 令 檔案操作 -eq 代表相等、-ne 代表不相等 Pipeline and Pattern matching -gt 代表大於、-lt 代表小於 第一個多媒體處理腳 本 -ge 代表大於等於、-le 代表小於等於。 迴圈與條件控制 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 47. 範例:loly.sh CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline if [ $losslessFormat -eq 1 ]; then 文字界面之美 mac ”$1” /tmp/DSC-temp.wav -d; BASH 基本指 elif [ $losslessFormat -eq 2 ]; then 令 檔案操作 flac -d ”$1” -o /tmp/DSC-temp.wav; Pipeline and Pattern matching ... 第一個多媒體處理腳 本 fi 迴圈與條件控制 結語 上述依照 lesslessFormat 的不同、採取不同解壓縮無損音訊的 方法。 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 48. 處理圖片的話﹍ CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 BASH 基本指 利用 imagemagick 可以達成調整影像對比亮度縮放、轉換格 令 檔案操作 式甚至拼排疊合影像﹍ Pipeline and Pattern matching 第一個多媒體處理腳 本 迴圈與條件控制 只要你有心他幾乎無所不能! 結語 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 49. 範例:轉換所有 jpg 檔並且調暗 CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 文字界面之美 我相信在其他平台上一定都有大量處理圖片的轉檔工具,但 BASH 基本指 是幾乎沒有任何一個足以同時修改圖片內容等畢其攻於一役 令 檔案操作 者﹍ Pipeline and Pattern matching 第一個多媒體處理腳 本 for i in ‘ls *.jpg‘; 迴圈與條件控制 do convert $i -brightness-contrast -60 $i.png; 結語 done . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 50. Power tool for power users. CCDD:Bash 腳本入門與實 例探討 R.T. Sun Outline 相信經過上述的介紹、各位已經發覺 UNIX 界的一般應用程 文字界面之美 式設計哲學了、那就是: BASH 基本指 令 檔案操作 Pipeline and Pattern 簡化應用程式到如同一個零件、讓使用者裝配出最適合自己 matching 第一個多媒體處理腳 的應用! 本 迴圈與條件控制 結語 希望短短的介紹能夠啟發各位對 Bash 等各類 shell 的興趣了。 謝謝 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..