#!/bin/bash
echo "hello world !"
1、作為可執行程式
將上面的**儲存為 test.sh,並 cd 到相應目錄:
chmod u+x ./test.sh #使指令碼具有執行許可權./test.sh #執行指令碼2、作為直譯器引數
這種執行方式是,直接執行直譯器,其引數就是 shell 指令碼的檔名,如:
/bin/sh test.sh使用變數/bin/php test.php
your_name="qinjx"echo $your_name
echo $
echo "i am good at $script"
readonly修飾為唯讀shell不支援浮點數,小數運算示例如下unset 命令可以刪除變數
unset variable_name
1、借助bc處理示例:計算5.01-4*2.0,得到的結果為-2.9912
$ c=$(
echo
"5.01-4*2.0"
|
bc
)
$
echo
$c
2、借助awk處理示例:計算7.01*5-4.01,得到的結果為31.0512
$ c=$(awk
'begin'
)
$ echo $c
注:在shell 中$() 與 ``等效。 中間包含命令語句執行,返回執行結果。
單引號字串的限制:雙引號的優點:
your_name="qinjx"greeting="hello, "$your_name" !"greeting_1="hello, $ !"echo $greeting $greeting_1
string="abcd"echo $#輸出 4
string="runoob is a great site"echo $# 輸出 unoo
string="runoob is a great company"echo `expr index "$string" is`# 查詢is,輸出 8。指令碼中 "`" 是反引號,而不是單引號 "'"陣列
array_name=(value0 value1 value2 value3)
array_name[0]=value0讀取陣列的值array_name[1]=value1
array_name[n]=valuen
valuen=$使用@符號可以獲取陣列中的所有元素,例如:
echo $
# 取得陣列元素的個數length=$# 或者length=$擷取字串
1. #號擷取,刪除左邊字元,保留右邊字元。
echo $
其中 var 是變數名,#
號是運算子,*// 表示從左邊開始刪除第乙個 // 號及左邊的所有字元
即刪除 http://結果是 :www.aaa.com/123.htm
2. #
# 號擷取,刪除左邊字元,保留右邊字元。
echo $
##*/ 表示從左邊開始刪除最後(最右邊)乙個 / 號及左邊的所有字元
即刪除 結果是 123.htm
3. %號擷取,刪除右邊字元,保留左邊字元
echo $
%/* 表示從右邊開始,刪除第乙個 /號及右邊的字元
結果是:
4. %%號擷取,刪除右邊字元,保留左邊字元
echo $
%%/* 表示從右邊開始,刪除最後(最左邊)乙個 /號及右邊的字元
結果是:http:
5. 從左邊第幾個字元開始,及字元的個數
echo $
其中的 0 表示左邊第乙個字元開始,5表示字元的總個數。
結果是:http:
printf
格式化輸出
printf "%-10s %-8s %-4s\n"姓名性別體重kg%s %c %d %f都是格式替代符printf "%-10s %-8s %-4.2f\n"郭靖男66.1234
%-10s 指乙個寬度為10個字元(-表示左對齊,沒有則表示右對齊),
%-4.2f 指格式化為小數,其中.2指保留2位小數。
# 如果沒有 arguments,那麼 %s 用null代替,%d 用 0 代替
# 格式只指定了乙個引數,但多出的引數仍然會按照該格式輸出,format-string 被重用printf %s abc defprintf "%s\n"abc defprintf "%s %s %s\n"a b c d e f g h i j流程控制
if condition1檔案包含then
command1
elif condition2
then
command2
else
commandn
fi
#使用 . 號來引用test1.sh 檔案. ./test1.sh
# 或者使用以下包含檔案**
# source ./test1.sh
shell程式設計筆記
第一天學習shell程式設計,自己做的筆記 test1 bin sh judge dir exist if d data 20140515 then mkdir p data 20140515 else echo this dir is exist,please exit fi bin sh sco...
shell程式設計筆記
if 1 eq 1 a 2 2 then echo true elif 1 lt 2 o 3 gt 4 then echo else echo false fi gt lt ge le eq ne a o if f 1.sh echo 1.sh exists if e 1.sh then echo ...
Shell程式設計筆記
1,變數命名規則 your name runoob.com 注意,變數名和等號之間不能有空格,這可能和你熟悉的所有程式語言都不一樣。同時,變數名的命名須遵循如下規則 命名只能使用英文本母,數字和下劃線,首個字元不能以數字開頭。中間不能有空格,可以使用下劃線 不能使用標點符號。不能使用bash裡的關鍵...