Shell學習:Shell echo、printf、test命令,echotest

來源:互聯網
上載者:User

Shell學習:Shell echo、printf、test命令,echotest
Shell學習:Shell echo、printf、test命令Shell echo命令

顯示一般字元串

echo "hello"

輸出:hello

這裡的雙引號完全可以省略,如下:

echo hello

輸出:hello

顯示逸出字元

echo "\"hello\""或者echo \"hello\"

輸出:”hello”

顯示變數

name="tom"echo "$name is a child"

輸出:tom is a child

顯示換行

# -e:開啟轉義echo -e "hello \nworld"

輸出:

helloworld

顯示結果定向至檔案

echo "hello world" > myfile.txt

執行cat myfile.txt命令,輸出

hello world

顯示日期

echo `date`

輸出:Tue Jan 16 06:30:53 PST 2018

Shell printf 命令

Shell printf命令模仿C程式庫(library)裡面的printf()程式。

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

printf的文法:

printf format-string [arguments...]
format-string:為格式控制字元串 arguments:為參數列表

eg:

[zhang@localhost ~]$ echo "hello,shell"hello,shell# 如果沒有分行符號,不換行[zhang@localhost ~]$ printf "hello world"hello world[zhang@localhost ~]$ # 使用分行符號[zhang@localhost ~]$ printf "hello,shell\n"hello,shell

printf佔位功能

eg:

#!/bin/bashprintf "%-10s %-8s %-4s\n" name sex weightprintf "%-10s %-8s %-4.2f\n" zhangsan male 68.22printf "%-10s %-8s %-4.2f\n" lisi male 70.02printf "%-10s %-8s %-.2f\n" xiaolongnv female 48.12

輸出:

name       sex      weightzhangsan   male     68.22lisi       male     70.02xiaolongnv female   48.12

預留位置有:%s,%d,%c,%f。

%-10s:表示寬度為10個字元,-表示靠左對齊,沒有表示靠右對齊。不足自動填滿空格。超過也會將內容全部顯示出來。

%-4.2f:表示格式化小數,其中.2表示保留2位小數。

%d:格式化數字

Shell test 命令

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

數值測試

參數 說明
-eq 等於則為真
-ne 不等於則為真
-gt 大於則為真
-ge 大於等於則為真
-lt 小於則為真
-le 小於等於則為真

eg:

#!/bin/bashnum1=100num2=200if test $num1 -eq $num2then    echo "$num1 equal $num2"else    echo "$num1 not equal $num2"fi

結果:

100 not equal 200

字串測試

參數 說明
= 等於則為真
!= 不相等則為真
-z 字串長度為0,則為真
-n 字串的長度不為0,則為真

eg:

#!/bin/bashstr1="hello"str2="world"if test $str1 = $str2then    echo "$str1 equal $str2"else    echo "$str1 not equal $str2"fiif test -z $str1then    echo "$str1 is empty"else    echo "$str1 is not empty"fi

輸出結果:

hello not equal worldhello is not empty

檔案測試

參數 說明
-e 如果檔案存在,則為真
-r 如果檔案存在且可讀,則為真
-w 如果檔案存在且可寫,則為真
-x 如果檔案存在且可執行,則為真
-s 如果檔案存在且至少有一個字元,則為真
-d 如果檔案存在且為目錄,則為真
-f 如果檔案存在且為檔案,則為真
-c 如果檔案存在且為字串特殊檔案,則為真
-b 如果檔案存在且為塊特殊檔案,則為真

eg:

在zhang使用者目錄下,執行ls -l命令:

執行test -e 命令:

[zhang@localhost ~]$ test -e 1.sh[zhang@localhost ~]$ if test -e 1.sh> then>     echo "1.sh file exist"> else>     echo "1.sh file not exist"> fi1.sh file exist

執行test -r 命令:

[zhang@localhost ~]$ if test -r 1.sh> then>     echo "1.sh read ok"> else>     echo "1.sh read not ok"> fi1.sh read ok

執行test -x 命令:

[zhang@localhost ~]$ if test -x myfile.txt> then >     echo "myfile.txt is execute file"> else>     echo "myfile.txt is not execute file"> fimyfile.txt is not execute file

執行test -d 命令:

[zhang@localhost ~]$ if test -d test> then>     echo "test is a dir"> else>     echo "test is not a dir"> fitest is a dir
<

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.