Linux Shell指令碼攻略(1.2)

來源:互聯網
上載者:User

標籤:shell

1.2 終端列印
  • 終端是互動式工具,使用者可以通過它與shell環境進行互動。在終端中列印文本是大多數shell指令碼和工具日常需要執行的基本任務。通過終端列印,人們可以知道系統的運行狀態,這對使用者來說是至關重要的。
echo終端列印
echo "Welcome to Bash"echo ‘Welcome to Bash‘echo  Welcome to Bash
  • 以上三種方法的效果是一樣的,輸出內容都是“Welcome to Bash”,並在末尾添加分行符號。在預設情況下,echo在每次調用後會添加一個分行符號,而無需手動輸入分行符號。此處,建議養成一種習慣,對於其他的方法瞭解即可。

  • 使用雙引號時的限制
    使用雙引號輸出字串時,字串內不能含有特殊字元(!),或者要在特殊字元前加逸出字元\。使用單引號或者不使用引號,也可以正常輸出特殊字元。

echo "cannot include !"   #這種情況下將會報錯echo "cannot include \!"  #這種情況下可以正常輸出!echo cannot include !     #這種情況下可以正常輸出!echo ‘cannot include !‘   #這種情況下可以正常輸出!
  • 使用單引號的限制
    在使用單引號輸出字串時,變數替換將會失效。使用雙引號或者不使用引號可以正常輸出被替換的變數。
var="abcd"echo ‘1234$var‘          #這種情況下將輸出 1234$varecho 1234$var            #這種情況下將輸出 1234abcdecho "1234$var"          #這種情況下將輸出 1234abcd
  • 不使用引號時的限制
    在不使用引號輸出字串的情況下,無法顯示分號(;),因為分號在Bash中被用作命令定界符。使用單引號或者雙引號可以輸出分號。
echo hello;hello  #第一個hello被當成字串輸出,第二個被當成命令
printf終端列印

printf使用的參數和C語言中的printf函數一樣,使用引用文本或由空格分隔的參數。在printf函數中,我們可以使用格式化字串,指定字串的寬度、左靠右對齊方式等。在預設情況下,printf不會在行尾添加分行符號,需要手動添加。

printf "Hello world"                    #使用引用字元printf "%-5s %-10s %-4s\n" No Name Mark #指定寬度及靠左對齊方式printf "%-5s %-10s %-4s\n" 1 Sarath 80.3456
  • 工作原理
    %s,%c,%d,%f都是格式替換字元,其所對應的參數可以置於帶引號的格式字串之後。
    %-5s指明了一個格式為靠左對齊且寬度為5的字串替換,-表示靠左對齊,若不指定對齊,則預設採用靠右對齊方式。寬度指定了保留給某個變數的字元數,如果要輸出的內容寬度不足,則用空格填充,若多於指定寬度,則超出部分被丟棄。
    %4.2f表示指定小數可以保留兩個小數位,要注意的是4並不代表整數部分的位元,也不代表整數位和小數位的和

  • 注意:使用echo和printf的命令選項時,要保證選項出現在命令列內所有字串之前,否者Bash會將選項視為另一個字串。

補充內容
  • 在echo中使用逸出字元
    在預設情況下,echo會自動在輸出字串末尾添加分行符號,可以使用-n選項來忽略結尾的分行符號。echo同樣接受雙引號字串內的逸出序列作為參數。如果需要使用逸出序列,則採用echo -e “包含逸出序列的字串”這種形式,在ubuntu14.04中,不需要添加-e選項,若添加,則-e選項會被作為字串的一部分輸出。
echo "Hello World"           #將在末尾添加分行符號echo -n "Hello Wordl"        #末尾不會添加分行符號echo -e "1\t2\t3"            #將輸出 -e 1  2   3echo "1\t2\t3"               #將輸出1  2   3
  • 列印彩色輸出

  • 在終端中產生顏色輸出,有助於我們從大量文本中快速定位特定的資訊,我們可以使用逸出序列來實現顏色輸出。

  • 每種文本顏色都有對應的顏色碼。

重設 黑色 紅色 綠色 黃色 藍色 洋紅 青色 白色
0 30 31 32 33 34 35 36 37

- 每種背景顏色也有對應的顏色碼。

重設 黑色 紅色 綠色 黃色 藍色 洋紅 青色 白色
0 40 41 42 43 44 45 46 47
echo -e "\e[1;31m This is red text \e[0m"echo -e "\e[1;41m This is red background \e[0m"#ubuntu14.04不支援這種方式改變文本或者背景顏色
參考

Linux Shell指令碼攻略

Linux Shell指令碼攻略(1.2)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.