注意:shell變數賦值"="兩邊不能有空格。
shell中小括號,大括號結構和有括號的變數,命令的用法
1.$ 加乙個大括號來限定變數名稱的範圍,例如
var=test
echo $aa
testaa
2.命令替換$(cmd)
shell掃瞄一遍命令列,發現了$(cmd)結構,便將$(cmd)中的cmd執行一次,得到其標準輸出,再將此輸出放到原來命令echo $(ls)中的$(ls)位置,即替換了$(ls),再執行echo命令 例如
$ ls
a b c
$ echo $(ls)
a b c
3.一串的命令執行()和{}
()和{}都是對一串的命令進行執行,但有所區別:
a,()只是對一串命令重新開乙個子shell進行執行
b,{}對一串命令在當前shell執行
c,()和{}都是把一串的命令放在括號裡面,並且命令之間用;號隔開
d,()最後乙個命令可以不用分號
e,{}最後乙個命令要用分號
f,{}的第乙個命令和左括號之間必須要有乙個空格
g,()裡的各命令不必和括號有空格
h,()和{}中括號裡面的某個命令的重定向只影響該命令,但括號外的重定向則影響到括號裡的所有命令
4.posix標準的擴充套件計算:$((exp))
這種計算是符合c語言的運算子,也就是說只要符合c的運算子都可用在$((exp)),甚至是三目運算子。
注意:這種擴充套件計算是整數型的計算,不支援浮點型.若是邏輯判斷,表示式exp為真則為1,假則為0。
$ echo $((3+2))
5 $ echo $((3>2))
shell高階篇
eval實現變數的間接引用
x='abc def'
y='$x'
echo $y
$xeval echo $y
abc def
函式的定義和使用
function foo() # foo為函式名
foo 「cool!」 # 函式呼叫
echo $? # 列印返回值
自定義函式 – 16進製制轉點分十進位制
a()))
str=$
if [ "x$str" = "x" ]
then
echo; return
else
echo -n "."; a $strfi}
#usage
a "ddb14ccf"
Shell學習筆記2
1 定義變數 定義變數 a b love 注意 變數名和等號之間不能有空格 這與熟悉的所其他程式語言都不一樣。命名規則 首個字元必須為字母 a z,a z 中間不能有空格,可以使用下劃線 2 使用變數 使用變數需要在已定義變數前加上美元符號 如 name jkl echo 注意 變數名外面的花括號是...
Shell程式設計學習筆記 2
email blog.oliver gmail.2004年11月 原文出處 http blog.csdn.yayong 用shell實現乙個命令或者工具的時候,對命令的引數進行合法性檢查是很有必要的。k shell是unix上最適合程式設計的shell,所以後面的例子都是ksh實現的。例1 下面 的...
shell 學習筆記
shell 是解釋型語言 移植性強課對應不同的直譯器 bin sh f 變數開頭以乙個字母或者下劃線,後接任意長度的字母 數字或者下劃線。命令 commod op 引數 輸入 輸出 重定向管道 echo printf 大口如小口出。特殊檔案 dev null bit bucket 刪除所有輸入的資料...