shell指令碼通常是乙個以
#!開始的文字檔案,在bash中,每個命令或是命令序列是通過使用分號或換行符來分隔的。字元#指明注釋的開始。注釋部分以#為起始,一直延續到行尾。
1.終端列印
1.1.1 echo
echo是用於終端列印的基本命令,在預設情況下,echo在每次呼叫後會新增乙個換行符。
$ echo "hello world"
hello world
可以使用
-n來忽略結尾的換行符
$ echo -n "hello world"
hello worldbrian@ubuntu:~$
echo同樣接受雙引號字串內轉義序列(escape sequence)作為引數, 如果需要使用轉義序列,則採用
echo -e
$ echo -e "1\t2\t3"
1 2 3
列印彩色輸出
在終端可以列印彩色輸出,我們可以使用轉義序列來實現
每種顏色都有對應的顏色碼。比如:重置=0,黑色=30,紅色=31,綠色=32,黃色=33,藍色=34,洋紅=35,青色=36,白色=37
要列印彩色文字,可以輸入如下命令
echo -e "\e[1; 31m this is red text \e[0m"
$ echo -e "\e[1;31m this is red text \e[0m"
this is red text
\e[1;31m將顏色設定為紅色,\e[0m將顏色重新置回。設定其他顏色只需要替換顏色碼就ok啦
如果把\e[1;31m中的1;去掉將會發生什麼情況?
echo -e "\e[31m this is red text \e[0m"
this is red text
看到變化了嗎?字型變得纖細而且暗淡,但顏色不變。
要設定彩色背景,經常使用的顏色碼是:重置=0,黑色=40,紅色=41,綠色=42,黃色=43,藍色=44,洋紅=45,青色=46,白色=47
列印彩色背景,可以輸入如下命令:
echo -e "\e[1;42m green background \e[0m"
$ echo -e "\e[1;42m green background \e[0m"
green background
去掉\e[1;42m中的1;後,字型纖細而且暗淡,但背景色不變。
$ echo -e "\e[42m green background \e[0m"
green background
1.1.2 printf
在預設情況下,printf並不會像echo那樣自動新增換行符,我們必須在需要的時候手動新增。另外,printf還可以指定字串的寬度,左右對齊方式等。
如下指令碼內容:
#!/bin/bash
#檔名稱printf.sh
printf "%-5s %-10s %-4s\n" no name mark
printf "%-5s %-10s %-4.2f\n" 1 sarach 80.3456
我們會得到如下格式化的輸出:
$ ./printf.sh
no name mark
1 sarach 80.35
符號「-」表示左對齊。
1.1.3 變數的取用
用echo就可以讀出變數,只是需要在變數名稱前加$符號,或者是以 $ 的方式取用都可以!
ex:echo $path 或者 echo $
Linux shell程式設計學習筆記(一)
bin bash 申明這是乙個shell指令碼檔案 1 接檔名.sh的方式執行 2 bin sh 檔名.sh 區別 第一種直接以點斜槓執行的方式,有時候需要先賦予檔案可執行許可權,第二種方式則可以直接執行,不需要賦予執行許可權 1 變數定義 直接a 123或者file d xuexi 即可 2 變數...
linux shell學習筆記
shell程式 將一系列linux程式通過流程控制寫在乙個文字檔案中,由shell讀取此文字檔案並且依次執行檔案中的程式。例子 bin bash 代表shell程式的注釋 echo hello linux echo this is a shell file.shell程式中需要用變數來儲存程式中的資...
Linux Shell學習筆記六
第八學時 引用 術語引用 引用即是將被選擇文字用某種型別的引用標記括起來,從而使得被選擇文字變成文字字元。轉義 轉義乙個字元意味著該字元前加乙個反斜線 從而轉義或者去除了shell命令中該字元的特殊含 義,或者正如讀者在echo命令中看到的 n 一樣增加特殊含義。跟在反斜線後的字元被稱為轉義字元。特...