shell學習 print echo test命令

2021-08-20 22:39:13 字數 3017 閱讀 2508

echo命令學習:

print命令學習:

上一章節我們學習了 shell 的 echo 命令,本章節我們來學習 shell 的另乙個輸出命令 printf。

printf 命令模仿 c 程式庫(library)裡的 printf() 程式。

printf 由 posix 標準所定義,因此使用 printf 的指令碼比使用 echo 移植性好。

printf 使用引用文字或空格分隔的引數,外面可以在 printf 中使用格式化字串,還可以制定字串的寬度、左右對齊方式等。預設 printf 不會像 echo 自動新增換行符,我們可以手動新增 \n。

printf 命令的語法:

printf  format

-string

[arguments

...]

引數說明:

例項如下:

$ echo 

"hello, shell"

hello

,shell

$ printf

"hello, shell\n"

hello

,shell

$

接下來,我來用乙個指令碼來體現printf的強大功能:

#!/bin/bash

# author:菜鳥教程

# url:www.runoob.com

printf

"%-10s %-8s %-4s\n"

姓名性別

體重kg

printf

"%-10s %-8s %-4.2f\n"郭靖男

66.1234

printf

"%-10s %-8s %-4.2f\n"楊過男

48.6543

printf

"%-10s %-8s %-4.2f\n"郭芙女

47.9876

執行指令碼,輸出結果如下所示:

姓名

性別體重

kg郭靖

男66.12楊過男

48.65郭芙女

47.99

%s %c %d %f都是格式替代符

%-10s 指乙個寬度為10個字元(-表示左對齊,沒有則表示右對齊),任何字元都會被顯示在10個字元寬的字元內,如果不足則自動以空格填充,超過也會將內容全部顯示出來。

%-4.2f 指格式化為小數,其中.2指保留2位小數。

shell中的 test 命令用於檢查某個條件是否成立,它可以進行數值、字元和檔案三個方面的測試。

引數說明

-eq等於則為真

-ne不等於則為真

-gt大於則為真

-ge大於等於則為真

-lt小於則為真

-le小於等於則為真

例項演示:

num1

=100

num2

=100

iftest $

[num1]-

eq $

[num2

]then

echo

'兩個數相等!'

else

echo

'兩個數不相等!'

fi

輸出結果:

兩個數相等!
**中的 執行基本的算數運算,如:

#!/bin/basha=

5b=6

result=$

[a+b

]# 注意等號兩邊不能有空格

echo

"result 為: $result"

結果為:

result 

為:11

引數說明=

等於則為真

!=不相等則為真

-z 字串

字串的長度為零則為真

-n 字串

字串的長度不為零則為真

例項演示:

num1

="ru1noob"

num2

="runoob"

iftest $num1

=$num2

then

echo

'兩個字串相等!'

else

echo

'兩個字串不相等!'

fi

輸出結果:

兩個字串不相等!
引數

說明-e 檔名

如果檔案存在則為真

-r 檔名

如果檔案存在且可讀則為真

-w 檔名

如果檔案存在且可寫則為真

-x 檔名

如果檔案存在且可執行則為真

-s 檔名

如果檔案存在且至少有乙個字元則為真

-d 檔名

如果檔案存在且為目錄則為真

-f 檔名

如果檔案存在且為普通檔案則為真

-c 檔名

如果檔案存在且為字元型特殊檔案則為真

-b 檔名

如果檔案存在且為塊特殊檔案則為真

例項演示:

cd 

/bin

iftest -e

./bash

then

echo

'檔案已存在!'

else

echo

'檔案不存在!'

fi

輸出結果:

檔案已存在!
另外,shell還提供了與( -a )、或( -o )、非( ! )三個邏輯操作符用於將測試條件連線起來,其優先順序為:"!"最高,"-a"次之,"-o"最低。例如:

cd 

/bin

iftest -e

./notfile -o

-e ./bash

then

echo

'至少有乙個檔案存在!'

else

echo

'兩個檔案都不存在'

fi

輸出結果:

至少有乙個檔案存在!

shell學習之 shell呼叫shell

2008 05 06 14 43 18 分類 linux 標籤 字型大小 大中小訂閱 fork是最普通的,就是直接在指令碼裡面用 directory script.sh來呼叫script.sh這個指令碼.執行的時候開乙個sub shell執行呼叫的指令碼,sub shell執行的時候,parent ...

學習shell 與shell指令碼 學習筆記

一般模式 編輯模式 命令列命令模式 一般模式下輸入 都會進入命令列模式 我們寫vi命令中最常用的方法 一般模式 0 移動到這一行的最前面字元處 移動到這一行的最後面字元處g 移動到這個檔案的最後一行 gg移動到這個檔案的第一行 n n為數字 游標向下移動n行 word 從游標位置開始向下搜尋乙個名為...

Shell學習之shell語法

shell指令碼就是將完成乙個任務的所有的命令按照執行的先後順序,自上而下寫入到乙個文字檔案中,然後給予執行許可權。shell指令碼的命名 名字要有意義 不超過30個位元組 sh結尾 名字不要太長 區分大小寫 shell指令碼格式 shell指令碼開頭必須指定指令碼執行環境 以 這個特殊符號組合來組...