SHELL 的一些簡單的用法

2021-08-03 18:45:41 字數 4134 閱讀 4264

一般模板

#!/bin/bash                           shell型別

#a ****** shell script example

#a function

sayhello() 函式

echo

"programme starts here..." 主過程

sayhello

echo

"programme ends."

特殊符號:

1、注釋符#

除了#!/bin/bash裡的#特殊

2、美元符 變數

符。與反

斜槓轉義

符相反,

使其後的

普通字元

作為變數

名,如 a表示變數a的值。變數字元長度超過1個時,用{}括起來

3、、單引號

被引起的字元全部做普通字元,即全部原樣

echo 『my $shell』

4、雙引號

引號內的內容,除$、轉義符\、倒引號這三個保留特殊功能,其他字元均做普通字元。

5、倒引號(數字1鍵旁邊的那個鍵)

引號內的字串當做shell命令列解釋執行,得到的結果取代整個倒引號括起來的部分。

pwd`即pwd命令的執行結果

$logname 系統變數

#!/bin/bash

echo

"abcdefg........"

syshello

syshello

()echo

"start......."

sy```shello

echo

"exit......"

常用環境變數

1、home變數

linux系統中的每個使用者都有乙個相關的稱作home的目錄。

2、path序的搜尋

包含一列用冒號定界的目錄的路徑名字,便於可執行程式的搜尋。

部分內部變數是:

$#——傳送給shell程式的位置引數的數量

$?——最後命令的完成碼或者在shell程式內部執行的shell程式(返回值)

$0——shell程式的名稱

$*——呼叫shell程式時所傳送的全部引數的單字串, 「引數1」「引數2」…形式儲存的引數

$n———-第n個引數

條件判斷命令:

test n1 -引數 n2(或 –引數 表示式)真返回0,假返回1。

引數:

-lt 小於

-le小於等於

-gt 大於

-ge 大於等於

-eq 等於

-ne 不等於

#!/bin/bash

if [ $#

-ne1 ]

then

echo

"usage:$0 filename"

exit1fi

<< a

if test -f

$1then

echo

"file exist!"

else

touch $1

echo

"create file:$1"fia

test -f

$1 && echo

"file exist!"

test -f

$1 || touch $1

shell運算子和c語言基本類似,也有分支、迴圈流程控制。

簡單舉例

後面例子涉及的命令:

seq命令:產生數字序列

比如 seq 100 400

expr命令:對表示式求值

直接求值命令:對被括起來的表示式求值

迴圈語句:

#!/bin/bash

<< a

for i in asn 12 dd 56464sfs 646g

doecho

$idone

a<< b

s=0for i in12

3456

78910

do s=$((s+i))

done

echo$sb

s=0for i in `seq 1

10`do

s=$((s+i))

done

echo

$s

#!/bin/bash

s=0i=0

while [ $i -le 100 ]

do s=$((s+i))

i=$((i+1))

done

echo

$s

**檔案測試

-f 存在且是普通檔案

-d 存在且是目錄

-s 存在且位元組數大於0

-r 存在且可讀

-w 存在且可寫

-x 存在且可執行

如:test -d 「mydoc」

判斷mydoc是否是目錄

字串測試

test s 字串s非空

test s1=s2 字串s1等於s2

test s1!=s2 字串s1不等於s2

test -z s 字串長=0,即為空串

test -n s 字串長》0

=: 等於則為真

!=:不相等則為真

-z字串:字串長度為零則為真

-n字串:字串長度不為零則為真**n字串:字串長度不為零則為真

幾個 shell 的應用

1,編寫乙個名為iffile程式,它執行時判斷/bin目錄下date檔案是否存在?

filename=/bin/date

if (test -f

"$filename")

then

echo

"exist"

fi

2.編寫乙個名為menu的程式,實現簡單的彈出式選單功能,使用者能根據顯示的選單項從鍵盤選擇執行對應的命令。

#!/bin/bash

clear

echo

" ---------menu---------"

echo

echo

"1.find files modified in last 24 hours"

echo

"2.the free disk space"

echo

"3.space consumed by this user"

echo

"4.exit"

echo

echo -n " select:"

read choice

case

$choice

in1)find $home -mtime -1 -print;;

2)df;;

3)du -s

$home;;

4)exit;;

*)echo

"invalid option"

esac

3.編寫乙個名為greet的問候程式,執行時能根據系統當前的時間向使用者輸出問候資訊。設從半夜到中午為早晨,中午到下午六點為下午,下午六點到半夜為晚上。

#! /bin/bash

hour=`date | cut -c 10-11`

if test "$hour" -ge 0

"$hour"

-lt12;

then

echo

"good morning!"

elif

test "$hour" -ge 12

-a"$hour" -le 18;

then

echo

"good afternoon!"

else

echo

"good evening!"

fi

書寫一些簡單的shell指令碼

1 檢查定時任務是否開啟 root shell 2.5 cat sb01.sh bin bash etc init.d functions service ps ef grep crond wc l if service gt 1 then echo action crond is running ...

Substring 的一些簡單用法

string teststring abc def teststring.substring 2 return c def teststring.substring teststring.lastindexof 1 return def teststring.substring teststring...

LINQ to SQL的一些簡單用法

static void main string args new person 新建乙個list,事先存放一些資料 var a personlist.firstordefault 獲取personlist中第一條資料 var b personlist.where p p.personid 2 fir...