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接下來,我來用乙個指令碼來體現printf的強大功能:"hello, shell"
hello
,shell
$ printf
"hello, shell\n"
hello
,shell
$
#!/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
姓名%s %c %d %f都是格式替代符性別體重
kg郭靖
男66.12楊過男
48.65郭芙女
47.99
%-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指令碼開頭必須指定指令碼執行環境 以 這個特殊符號組合來組...