unix shell學習筆記1

2021-08-31 19:49:10 字數 4726 閱讀 5808

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 例...