table of contents
1.shell
簡介1.1
shell
種類1.2
shell
對比1.3
詳細特性比較
1.4 shell初始檔案
·c shell
·tc shell
·bourne shell
·bash shell
·korn shell
其中,c shell
和tc shell依照c
語言的語法,而
bourne shell
是基於老式的程式語言
algol, bash shell
和korn shell
起源於bourne shell,
但也可以看作是
bourne shell and c shell
的結合。
專案
c
tc
boume
bash
korn別名
是 是
否 是
是 高階模式匹配 否
否 否是 是
命令列編輯 否
是 否是 是
目錄棧 是
是 否是 否
檔名補全 是
[*] 是
否 是
是 函式
否 否
是 是
是 歷史
是 是
否 是
是 作業控制 是
是 否是 是
鍵繫結 否
是 否是 否
格式化提示符 否
是 否是 否
拼寫糾正 否
是 否是 否
特性
c/tc
bourne
bash
korn
shell
結構shbang
行#!/bin/csh
#!/bin/tcsh
/bin/sh
#!/bin/bash
#!/bin/ksh
注釋# this is comment
# this is comment
# this is comment
# this is comment
變數區域性變數賦值
set x=5
x=5x=5
x=5環境變數
setenv var value
name=』bob』
export name
export name=』bob』
export name=』bob』
訪問變數
echo $name
echo $name
echo $name
echo $name
或print $name
字元個數
echo $%var
n/a$$程序
pid$$
$$$$
$$退出狀態
$status,$?
$?$?
$?前乙個後台作業
$!(tcsh only)
$!$!
$!陣列
給陣列賦值
set x=( a b c )
n/ay[0]=』a』;y[1]=』b』
y[0]=』a』;y[1]=』b』
訪問陣列元素
echo $x[1]
n/aecho $
print $
i/o讀取輸入
set var=$<
read var
read var
read var
算術執行計算
@var = 5 + 1
var=`expre 5 + 1`
(( n = 5+ 5))
(( n = 5+ 5))
初始化檔案
登入時執行
.login
.profile
.bash_profile
.profile
每次呼叫
shell
時.cshrc
n/a.bashrc
.kshrc
程式設計結構
if條件語句
if(exp) then
commands
endif
if then
commands
endif
if[ exp ] then
commands
fi if command then
commands
fiif[[ string exp ]] then
commands
fiif((numeric exp))
then
commands
fiif[[ string exp ]] then
commands
fiif((numeric exp))
then
commands
figoto
goto label
n/an/a
n/aswitch/case
switch(「$value」)
case pattern1:
commands
breaksw
case pattern2:
commands
breaksw
default:
commands
breaksw
endsw
case 「$value」 in
pattern1)
commands
;;pattern2)
commands
;;*) commands
;;esac
case 「$value」 in
pattern1)
commands
;;pattern2)
commands
;;*) commands
;;esac
case 「$value」 in
pattern1)
commands
;;pattern2)
commands
;;*) commands
;;esac
while
while(expression)
commands
endwhile command
docommand
done
while command
docommand
done
while command
docommand
done
for/foreach
foreach var(list)
commands
endfor var in list
do commands
done
for var in list
do commands
done
for var in list
do commands
done
until
n/auntil command
docommands
done
until command
docommands
done
until command
docommands
done
repeat
repeat 3 「echo hello」
hello
hello
hello
n/an/a
n/aselect
n/an/a
select var in list
do commands
done
select var in list
do commands
done函式
n/afun()
funfun parm1 param2….
function fun()
function fun
funfun parm1 param2….
function fun()
function fun
funfun parm1 param2….(待續
)
b shell只適用乙個初始化執行檔案,為.profile,一般位於使用者的home目錄下,用來設定使用者的環境,當使用者註冊或在命令列
啟動b shell時,即讀.profile檔案,一般通過它來設定使用者查詢路徑和其他環境變數。
c shell則不同於b shell,它使用兩個初始化檔案,用於設定使用者的環境變數,為:.login和.cshrc,位於home目錄
登入時,c shell讀取.login;啟動c shell時,唯讀.cshrc檔案。
//todo
unix shell學習筆記2
正規表示式 regular expression,re 是一種字元模式,用於在查詢過程中匹配指定的字元。正規表示式元字元 萬用字元 元字元 萬用字元功能 例子匹配物件 行首定位符 hello 匹配以hello 開頭的 行尾定位符 hello 匹配以hello 結束的行 匹配單個字元 l.e 匹配以l...
unix shell學習筆記4
容,處理後,不改變檔案內容。sed options command file s sed options f scriptfile file s command a 在當前行後面加入一行文 本b lable 分支到指令碼中帶有標記的地方,如果分支不存在則分支到指令碼的末 尾c 從模板塊 patter...
unix shell學習筆記 C shell程式設計
shell指令碼由命令和散布其間的注釋組成。執行指令碼步驟為 選擇shell 授予執行許可權 執行指令碼 選擇shell,第一行以 即shbang指明所用的shell直譯器,如 bin csh 或者 bin tcsh 授予執行許可權 chmod x myscript 執行指令碼 myscript 例...