Terry Chen

@seterrychen

Joined on Jun 9, 2018

  • 個人在工作時候大量地使用Shell scripts,透過它將服務所需要的環境自動化設定並帶起該服務,很多時候需要針對script執行失敗的原因進行修正。為了達到這個目的,單單使用echo指令印出執行時期的結果來找出失敗的原因是不夠的。以下記錄個人覺得非常實用的debug技巧跟大家分享。 Shell script前言 sh (or the Shell Command Language) is a programming language described by the POSIX standard. It has many implementations (ksh88, dash, ...). bash can also be considered an implementation of sh (see below). 以上那段話是出自shell - Difference between sh and bash - Stack Overflow,用來說明sh是一個標準,而實作這個標準的有ash(busybox)、bash、dash、zsh等等。(而也有很多人使用的fish shell目前並不相容與POSIX standard,故以下技巧不一定適用於fish shell) 技巧 xtrace功能
     Like 1 Bookmark
  • 我們知道電腦是0和1所組成的世界,不管是軟體程式、影片、文件、圖片等等都是用0和1來組成的。例如用01000001來代表A,用01100011來代表c,而用111111110000000000000000(分別代表紅、綠、藍三原色,分別為8個bits)來代表紅色。那麼電腦在運作時,要如何區分這些差別呢?這就要靠制定檔案格式來區分,根據File format - Wikipedia中所記錄,有三種類型用來辨識檔案的格式,分別是 Filename extension(副檔名) Internal metadata External metadata 不同的作業系統採用不同的方式,像是Windows是以副檔名的方式來判斷開啟該檔案所需要的軟體,在沒有副檔名的情況之下或副檔名沒有關聯到預設程式的話,Windows會要求你"選擇您想要用來開啟這個檔案的程式"。 External metadata是將該檔案格式的資訊存放file system中,而不是記錄在檔案本身,故檔案在不同作業統中交換時,造成處理上的困難。
     Like  Bookmark