終端列印
shell指令碼通常是乙個以#!起始的文字檔案,如下所示:
#! /bin/bash
指令碼執行方式有兩種:
一.將指令碼作為命令列引數時的執行方式如下:
$ sh script.sh #假設指令碼位於當前目錄下
或者$ sh /home/path/script.sh #使用script.sh 的完整路徑
二.將指令碼作為具有執行許可權的可執行檔案:
先讓指令碼具有可執行許可權,可以通過一下方式設定
$ chmod a+x script.sh
該命令賦予所有使用者script.sh檔案的可執行許可權。這個指令碼能以下列方式執行:
$ ./script.sh # ./表示當前目錄
或者$ /home/path/script.sh # 使用指令碼的完整路徑
shell程式讀取指令碼的首行,檢視shebang行是否為#!/bin/bash。他會識別/bin/bash,並在內部以
如下命令列執行該指令碼:
$ /bin/bash script.sh
在bash中,每個命令或者命令序列是通過使用分號或換行符來分割的。比如:
$ cmd1; cmd2
它等同於
$ cmd1
$ cmd2
字元#指明注釋的開始。注釋部分以#為起始,一直延續到行尾。注釋行通常使用者為**提供注釋資訊,或者
注釋掉某行**,暫不執行。
三.實戰演練
echo 是用於終端列印的基本命令。
在預設情況下,echo在每次呼叫後會新增乙個換行符。
$ echo "welcome to bash"
welcome to bash
只需要使用帶雙引號的文字,結合echo命令就可以將該文字在終端中列印出來。類是地,不帶雙引號的文字
也可以得到同樣的輸出效果:
$ echo welcome to bash
welcome to bash
使用單引號也可以完成同樣的任務:
$ echo 'text in quote'
如果需要列印!,要麼不要放在雙引號之中,或者在其前面加乙個特殊的轉義字元(\)將!轉義。
另乙個可用於終端列印的命令是printf。printf使用的引數和c語言中的printf函式一樣。例如:
$ printf "hello world"
四.補充內容
一定要留神的是echo和printf中的標誌(如-e,-n等)應該出現在命令行內任何字串之前,否則bash會將》其視為另外乙個字串。
one.在echo中轉義換行符
在預設情況下,echo會將乙個換行符追加到輸出文字的尾部。可以使用標誌-n來忽略結尾的換行符。echo同
樣接受雙引號字串內的轉義序列(escape sequence)作為引數。如果需要使用轉義序列,則採用echo -e「包含轉義》序列的字串」這種形式。例如:
echo -e "1\t2\t3"
1 2 3
two.列印彩色輸出
在終端中生成彩色輸出相當好玩,我們可以使用轉義序列來實現。
每種顏色都有對應的顏色碼。比如:重置=0,黑色=30,紅色=32,綠色=32,黃色=33,藍色=34,洋紅=35,
青色=36,白色=37。
要列印彩色文字,可輸入如下命令:
echo -e "\e[1;31m this is red text \e[0m"
\e[1;31將顏色設定為紅色,\e[0m將顏色重新置回。你只需要將31替換成想要的顏色碼就可以了。
要設定彩色背景,經常使用的顏色碼是:重置=0,黑色=40,紅色=41,綠色=42,黃色=43,藍色=44,洋紅=45,青色=46,白色=47.
要列印彩色文字,可輸入如下命令:
echo -e "\e[1;42m green background \e[0m"
關於顏色的設定它也有乙個公式
顏色=\033[**;前景;背景m
Linux Shell指令碼學習(一)
最近花了一周的時間快速的學習了一下shell指令碼,看的書是 linux shell指令碼程式設計 第三版 僅僅整理了一些筆記,不做技術交流也不算分享,只是作為自己的學習之路的記錄,務戀。shell one 開始學習linux shell指令碼,首日了解了linux命令列 linux shell終端...
linux shell指令碼學習筆記
if command then commands fiif後面的命令,執行後狀態碼返回0,則執行then部分的命令 執行pwd wang wang test pwd home wang test 檢視退出碼 wang wang test echo 0 執行pwda wang wang test pw...
linux shell 指令碼攻略第3版 讀書筆記
第2章 1shell會擴充套件沒有引號或是出現在雙引號 中 的萬用字元。單引號能夠阻止shell擴充套件 txt,使得該字串能夠原封不動地傳給find命令。2find 命令 如果需要用到正規表示式使用單引號 例如 查詢 home slynux下面 所有以txt結尾的檔案並列印出來 find home...