03 shell编程之case语句与函数

作者:电脑系统

Case语句的功用

l  使用case语句改写多分支能够使脚本结构尤其清楚,等级次序明显

l  针对变量不一致取值,实践不同的下令系列

 

2、条件判定:

原则测量试验的表明式:

[ expression ]

[ [expression] ]

test expression

HOSTNAME:是指主机的名号,相当多应用程序就算要用到主机名的话,常常是从那些情况变量中来拿到的

shell函数

l  将下令类别按格式写在一块儿

l  可惠及重复使用命令连串

l  Shell函数定义

[function] 函数名(){

命令连串

[return x]

}

l  调用函数的法子

[root@poll ~]# vi sum.sh

#!/bin/bash

#this is SUM

SUM(){

echo "那是一个求和平运动算"

read -p "请输入第叁个数:" A

read -p "请输入第叁个数:" B

echo "你输入的多少个数分别为:$A $B"

SUM=$(($A $B))

echo "七个数的和为:$SUM"

#return $(($A $B))

}

SUM

#echo "五个数的和为:$?"

l  Linux系统中有无数服务器运转脚本

概念了丰裕的shell函数

嵌套了种种语句,如if语句等

可参看其编写的服务器运营脚本

[root@poll scripts]# vi /etc/init.d/network

……

if [ -f /etc/sysconfig/pcmcia ]; then

    . /etc/sysconfig/pcmcia

fi

 

 

# Check that networking is up.

[ "${NETWORKING}" = "no" ] && exit 6

 

# if the ip configuration utility isn't around we can't function.

[ -x /sbin/ip ] || exit 1

 

 

CWD=$(pwd)

cd /etc/sysconfig/network-scripts

……

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本章伊始甘休,下焕发青新春讲循环语句

11、read命令:与顾客进行人机联作

-p  允许在read命令行中央司法机关接内定叁个提醒

-t #  计时器#私下认可单位为秒,如在指准期期不输入的话,read命令归来非零值

钦定的变量将为空。

-n# 设置输入的字符,变量只选取钦定的#个字符。

-s 隐瞒输入的值,多用于输入密码时使用。实际将输入的文书颜色设置成与背景同样

cat  /tmp/test.txt |while read line;将test.txt文本中的内容每行的保留到line变量中。

awk

#df -Ph | awk '{print $1,$3}'

#fdisk -l 2> /dev/null | grep "^Disk /de[sh]d[a-z]" | awk -F: '{print $1}'

字体呈现调整:

echo -e \033[3;37;41m出示内容\033[0m

中间-e 表示使用扩充属性

      \033[3;37;41m 表示按此格式展现“显示内容”

\033[0m 表示特别格式截至,前边的开始和结果健康展现。

3 表示字体格式(行书、加粗、下划线、闪动卡塔尔国

37 表示字体颜色(1-7  多样颜色卡塔 尔(英语:State of Qatar)

41  表示字体底色(1-7  四种颜色卡塔尔国

看清标准是还是不是创建,不创制就进行循环体,创制就淡出!

正文全部内容均来源于当年博主当年读书笔记,若有欠缺招待指正

12、其他

1、变量中字符的长度:${#VARNAME}

2、变量赋值等:

${parameter:-word}:借使parameter为空或未定义,则变量打开为“word”;否则,张开为parameter的值;

${parameter: word}:假使parameter为空或未定义,不做任何操作;不然,则进行为“word”值;

${parameter:=word}:借使parameter为空或未定义,则变量张开为“word”,并将展开后的值赋值给parameter;

${parameter:offset}

${parameter:offset:length}:取子串,从offset处的后叁个字符开端,取lenth长的子串;

3、脚本配置文件

/etc/rc.d/init.d/服务脚本

服务脚本援救配置文件:/etc/sysconfig/服务脚本同名的安顿文件

4、局地变量

local VAR_NAME=

a=1

test() {

  a=$[3 4]

}

test

for I in `seq $a 10`; do

  echo $I

done 

5、命令mktemp

创办有的时候文件或目录

mktemp /tmp/file.XX

-d: 创制为目录

6、信号

kill -SIGNAL PID

1: HUP

2: INT

9: KILL

15: TERM

本子中,能兑现时域信号捕捉,但9和15不能捕捉

Ctrl c: SIGINT

trap命令:

trap 'COMMAND' 数字信号列表

7、意气风发行施行三个语句,语句间用分号分隔

常用:

获得当前时刻搓 date %s

将时间戳转为为专门的职业时间 date -d @123123123

${变量#主要字}--------->若变量内容从头最先的素材切合‘关键字’,则将符合的最短资料删除

Case语句

4、数量总计:

shell中什么开展算术运算;

A=3  B=6

1、let  算术运算表明式 #let C=$A $B

2、 $[算术运算表明式] #C=$[$A $B]

3、$((算术运算表明式)) #C=$(($A $B))

4、SUM_MONEY=$(awk "BEGIN{print  $SUM_TIME*$MONEY}") 总结带浮点型

传延宗族随机数

RANDOM: 0-32768

随便数临蓐器:滳池

/dev/random:

/dev/urandom:

A="admin"

Shell编制程序之case语句与函数

学习目的:

操纵case语句编制程序

左右shell函数的使用

目录结构:

 图片 1

 

 

#unset VA本田UR-VNAME 撤废变量

-w FILE: 文件是不是可写

Case语句的构造

case 变量值 in

模式1)

       命令系列1

       ;;

模式2)

       命令种类2

       ;;

*)

       暗中认可命令种类

csac

 

case变量=方式1 ?是,则推行命令连串1,否,则推断变量=方式2 ?是,则实行命令连串2,否,则剖断变量=格局3 ?是,则实施命令系列3,否,则施行暗许命令系列。

 

实例:

l  击键类型识别脚本,推断输入的是字母依旧数字恐怕其它字符

[root@poll ~]# vi a.sh

#!/bin/bash

#this is zifupanduan

read -p "请输入叁个字符:" key

case $key in

[a-z]|[A-Z])

        echo "您输入的是字母。"

        ;;

[0-9])

        echo "您输入的是数字"

        ;;

[/]|[?]|[,])

        echo "您输入的是$key"

        ;;

*)

        echo "您输入的是任何字符"

esac

 

#set 查看bash中变量

 

体会:shell脚本可读性相当差,编写完事后应该有对应的解说,是或不是之后更改起来会充足费劲。

4、命令行编辑

5、特殊变量:

概念脚本退出状态码:

exit:退出脚本。

exit  #

base变量的项目:

本土变量(局地变量卡塔 尔(阿拉伯语:قطر‎

意况变量

地方变量 $1..$2..$3

./biaoben.sh /etc/fatab /etc/inittab

$1  =  /etc/fatab

$2  =  /etc/inttab

shift  n  轮换

./biaoben.sh /etc/fatab /etc/inittab

$0 当前剧本的文件名

$? 显示上一下令的实行状态码

$# 展现参数的个数

$* 展现全数参数列表

$@ 突显全数参数列表,与上不太大器晚成致,有更加尖端用项,被双引号(" ")包罗时,与 $* 稍有两样,下边将会讲到。

$$ 当前Shell进度ID。对于 Shell 脚本,正是那一个本子所在的经过ID。

 

9、景况变量:

export 命令用于将shell变量输出为遭遇变量,只怕将shell函数输出为情况变量。

日增原变量中的参数:#PATH=$PATH:/usr/local/mysql/bin:

查看当前shell中的蒙受变量:printenv、env、export

废除变量:unset  VARAV4NAME

查看当shell中变量::set

| 多种选取,分隔符

文件测验:

-e FILE: 测验文件是不是留存 exist

-f FILE:测量检验文件是不是为平日文书 file

-d FILE:测量检验钦点路径是或不是为目录 directory

-r FILE:测验当前客户对点名文件是不是由读取权限。 read

-w FILE: write

-x FILE: eXecute

-z FILE:测量检验参数是或不是为空 zero

# 非 0 表示错误退出

卡尺头相比较:

-eq:测验七个整数是或不是等于;  比方 [ $A -eq $B ]

-ne:测量试验八个整数是或不是不等;不等,为真,相等,为假。

-gt:测验五个数是不是超过另二个数,大于,为真;不然为假;

-lt:测量检验贰个数是不是低于另 三个数,小于,为真,不然为假;

-ge:大于或等于

-le:小于或等于

for 变量 in 列表; do

8、bash 特性:

FILE=/usr/local/src(此处的FILE那任意八个变量卡塔尔国

${FILE#*/}:usr/local/src

${FILE##*/}:src

${FILE%/*}:/usr/local 截取某文件目录

${FILE%%/*}:

/ 指分隔符,可为自便符号

# 表示至左往右找第多个分隔符,匹配到后,至右往左删除前面包车型地铁字符

## 表示至左往右找最终叁个分隔符,相称到后,至右往左删除后边的字符

% 代表至右往左找第四个分隔符,相称到后,至左往右删除前面包车型地铁字符

%% 表示至右往左找最终四个分隔符,相称到后,至左往右删除前面包车型客车字符

!=: 测量试验是还是不是不等,不等为真,等为假

#bash -n 脚本.sh 完结测量试验文件语法是不是有不当

 ...

3、变量名称:

1、只可以分包字母,数字和下划线,并且不能够数字开端;

2、不该跟系统中原来就有个别遇到变量重名;

3、最棒做到见名知义。

命令之间逻辑关系;

逻辑与: &&

逻辑或: | |

组合测量试验条件

-a:与关系 =&

-o:或关系 =|

!:非关系

if [  $# -gt 1 -a $# -le 3 ]    大于1且小于3

if [  $# -gt 1 ] && [  $# -le 3 ] 大于1且小于3

$$:获取当前shell的进度号(PID卡塔尔

7、函数:

落到实处:代码重用;结构化编制程序,不可能独立允许,必要调用时施行,能够被每每调用;

概念叁个函数:

FUNCNAME()

{

command

}

调用函数

FUNCNAME $1 $2

提前停止这一次函数

return

自定义执市场价格况重临值:

return #

0-255

经受参数的函数:

./a.sh m n $1:m $2:n

echo ${array[@] %o}   # 从字符串的末梢此前最短的非常

6、程序施行结果

程序施行:可能由两类重返值。

前后相继状态重返代码(0~255)

0:准确推行

1~255:错误履行, 1,2.127种类留住。

/dev/null  软件设施:bit bucket 数据黑洞

/dev/zero 数据临蓐  0000

sleep 1 默许单位为秒  

sleep 1m 表示延迟一分钟 、1h 代表延迟黄金年代钟头、1d 表示延迟一天

卡尺头测验

1、循环

for循环,适用于循环次数已知的风貌。

while循环:适用于循环次数未知的景观。

-------------------------------------------------- 

循环:while、for、until 


whi CONDITION; do

statment; 

done

法则满足、步入循环。条件不满足、退出循环。


until CONDITION; do 

statment

done

原则满意、退出循环。条件不满足、踏入循环


break:提前退出循环

continue:提前甘休本轮循环,而步向下风姿洒脱轮循环


for 变量 in 列表; do

循环体

done


for ((expr1;expr2;expr3)); do

循环体

done


什么样临蓐列表:

{1..100}

seq 开头数 步进长度 甘休数        #seq  1 2 10

for  I  in  `seq 1 $1`;do  done


双分支if语句

if 推断规范;then

statement1

statement2

else

statem ent3

fi


多分支的if语句:

if  判定标准1; then

statement1

elif 决断标准2; then

statemnet2

elif 推断标准3;then

statemnet3

fi


case  $1  in

1)

statement1;;

2)

statement2;;

*)

statement3;;

esac


-le:小于或等于

字符测量检验:

==: 测量试验是还是不是等于,相等为真,不等为假

!=:测量试验是不是不等,不等为真,相等为假

>

<

-n:测量检验制定字符串是还是不是为空,空则真,不空则假。 null

echo 特殊用法

#bash -x 脚本.sh 彰显任何脚本进程

 

10、特殊用法:

[ $A -eq 1 ] && echo "holle you." #倘若A=1则显得holle you,不然不进行。

for I in `seq 1 $#`;do 循环N个参多次。  如有3个参数则循环3次。

while的差别经常用法生龙活虎、(死循环卡塔 尔(阿拉伯语:قطر‎

while    :; do  

......    

done  

while的特别用法二、(逐行读取卡塔 尔(英语:State of Qatar)

while read LINE;do  

.......    

done <  /PATH/TO/SOMEFILE 

(输入重定向,读取文件的门路) 

select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do

 

 

lenarr=${#arr[@]}

!-n:推行命令历史中的尾数第n条命令;

 

 statement3

EOF

==:测量试验是不是等于,相等为真,不等为假

简简单单说下编制程序标准:

如:echo

.......

 

多分支的if语句:

...

对于我们设定外号的吩咐,若是要利用没有设定小名时的下令格式,即默许格式能够在命令前边加上:

数组赋值情势:

echo ${array[@]:2} #不显得数组中前多少个要素

 

done

do

 

 

B=6

 

 

 

PS1:是基本提醒符,对于root顾客是#,对于普通客户是$

 

子串删除:

echo "You have selected $var"

第一个标准为真时,第二尺度必得得判别;

 

i=0

   ...      

介意:shell中数组的下标默认是从0开始的!

广大的情状变量

有关口边蒙受变量命令介绍:

string !="" 字符串不为空

shell输入和出口中:

 

cat 特殊用法

statement4

 

 

 

 

 

8、bash中的数组使用

 

while的超过常规规用法二(从有些文件中读取行):

条件判定--if

"": 弱援引,能够兑现变量替换

~/.bashrc --> /etc/basrc --> /etc/profile.d/*.sh

6.readonly 装置只读景况变量 readonly HELLO

3).$((算术运算表达式))

echo ${array[@] //o/m} #享有相配到的,都会被删去

fi

 

IFS=$OLDIFS  

alias CMDALIAS='COMMAND [options] [arguments]'

?:大肆单个字符

 

全局配置

 statement2

那将打字与印刷: this is the 2nd

172.28.9.48www04.opsmysql.com

read 用法

 

 

岗位变量:

shell中关于字符串的简约操作:

statment

bashrc类的公文:

ualias CMDALIAS

间逻辑关系:

Alt .

 

 

#Description: .......

IFS=$'n'

shift 用法

 

管道------前叁个指令的出口,作为后叁个发令的输入

 

[abc] a, b, 或c三字元在那之中之风流洒脱,如:[abc]123,匹配a123或b123或c123。

if 衡量标准; then

let C=$A $B

 

done

 

 ;;

*)

# 读取文件内容到数组

-x FILE: 文件是不是可进行

 

select 说明式是朝气蓬勃种bash的扩张应用,特别擅长于人机联作式使用,客户能够从大器晚成组差异的值中举行采纳.

 

# 设置IFS将分开符 设置为 换行符(n)  

 

:> file 清空多少个文件

done

${变量/旧字串/新字串}--------->若变量内容适合‘旧字串’则‘第二个旧字串会被新字串替代

/dev/null 2>&1 : 意思是将行业内部输出和错误输出整身体重量定向到/dev/null中

 

continue

(3) array[0]=var1      

172.28.9.47www03.opsmysql.com

172.28.9.46www02.opsmysql.com

echo "this is the $numnd"

检查评定语法相关:bash -n 脚本名

 ...

 statement1

string =""  字符串为空

 

 statement

[ 条件1 && 条件2 ]那样使用

~/.bash_profile, ~/.bashrc

 

 

arr=(ab bc cd)

 

/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

2> 重定向错误输出

停顿当前那二次巡回,提前行入下一回巡回,私下认可跳过意气风发层循环,如若要跳过多层循环,可以用 continue n(n是大于1的数字,也就次数卡塔 尔(英语:State of Qatar)。

2.export 设置贰个新的境况变量 export HELLO="hello" (能够无引号)

$1, $2, ...$n

num=2

while的出格用法生机勃勃(死循环):

 

echo ${array[@] /%o/k} #交替字符串后端子串

1.文件注释表达

[:digit:]: 数字

done

巡回调整---until

 

-eq: 测量试验五个整数是还是不是等于;比方 $A -eq $B

 

先是个条件为假时,第二标准不用再推断,最后结出早原来就有;

对此Here Document举个实例:

[:upper:]: 大写字母

echo ${array[@]:0}

Ctrl u: 删除光标至命令行首的始末

 

这几个总结办法都以shell编制程序的根底!!!

   array[n]=varN

exit #

done

echo ${array[@] /o/m}  #率先个门当户对到的,会被去除

 

登陆式shell怎么着读取配置文件?

esac

'': 强引用,不做到变量替换

9、shell编制程序技能和编制程序标准

CMD

 

4.变量命名标准化

若果正在周转多少个进度,并且认为在退出帐户时该进度还不会终止,那么能够动用nohup命令。该命令能够在你退出帐户之后延续运营相应的进度。Nohup正是不挂起的乐趣( no hang up)。

变量名不可能以数字伊始!!!!!!!!!!!!!!!!

#!/bin/bash

 

value1)

#!/bin/bash

 

 

3.函数注明--表明该函数的效劳

 

再简单说下脚本退出状态码

把命令中有个别子命令替换为其实施结果的进程

Esc, .

echo ${array[@] /#o/k} #退换字符串前端子串

-z string: 测验钦点字符串是或不是不空,不空为真,空则为假

循环体

Ctrl k: 删除光标至命令行尾的剧情

[^]: 相称钦命范围之外的自由单个字符

cat >> /etc/hosts << EOF

-w:保存命令历史至历史文件中,那对于时常在差别的终端上实施命令很有用

-r FILE: 测验当前客商对点名文件是不是有读取权限

echo ${array[0]}  #显示第二个成分

echo "this is the ${num}nd"

statement3

 statement4

命名要表明那么些变量代表的含义

while [[ $i -lt $lenarr ]]

文本测验

SHELL:是指当前顾客用的是哪类Shell

 

 

 ...

脱离循环:条件不满意

 ...

HISTSIZE:是指保存历史命令记录的条数

elif 判别规范3; then

 

子弹头相比较:

$0:获取当前推行的shell脚本的文书名,经常结合basename使用

剔除数组中的成分:

select 命令能够成立轻松的列表,结构相同for循环,日常与case语句结合使用。

要是脚本未有猛烈定义退出状态码,那么,最终实施的一条命令的退出码即为脚本的退出状态码;

# man 7 glob

else

 

else

fi

echo ${array[@]##t*e} # 左侧最初最长的非凡,那将相称到"three"

 

 ...

取字符串长度

${变量//旧字串/新字串}--------->若变量内容符合‘旧字串’则‘全体的旧字串会被新字串代替

 

$*:获取当前shell的有着参数,$1 $2 $3 ,注意与$#的区别

 

 ;;

for (( i=0; i<${tLen}; i )); do    

 statement2

[[:alpha:]]*[[:space:]]*[^[:alpha:]]

Num_Count

...

[:alpha:]: 大小写字母

(1) array=(var1 var2 var3 ... varN)  

概念命令别称

-lt: 测验三个数是不是低于另一个数;小于,为真;不然,为假;

 

 原创作品,允许转发,转发时请必得以超链接情势评释作品 原始出处 、小编音讯和本证明。不然将查究法律义务。

下边写二个实例:

${变量%%关键字}--------->若变量内容从尾向前的材质适合‘关键字’,则将适合的最长资料删除

 

如:

 statement1

大局配置文件:/etc/bashrc

7、编制程序(条件判定、循环调控)

 

[email protected]:那些程序的享有参数 "$1" "$2" "$3" "…"

1、命令历史、命令补全 2、管道、重定向 3、命令别称和下令替换 4、命令行编辑 5、文件名通...

HOME:当前客商主目录

Ctrl e:跳到命令行尾

字符测量检验

-d OFFSET [n]: 删除内定地方的吩咐

 

 

lenarr=${#arr[@]}

3、命令小名和指令替换

>

3、命令外号和下令替换

光标跳转:

#Date: xxxx-xx-xx

 ;;

PATH:决定了shell将到怎么目录中索求命令或程序  

C* 表示以C字符开首的字符串

!n:奉行命令历史中的第n条命令;

(2) ${#array[*]}

${变量##驷比不上舌字}--------->若变量内容从头领头的素材切合‘关键字’,则将相符的最长资料删除

5.代码注意缩进

字符串的轮换与删除操作:

 

< 输入重定向

注意:[ 条件1 -a 条件2 ]  等价于 [ 条件1 ] && [ 条件2 ]

 

statement2

Passwd

do

shell中什么进行算术运算:

对于外号大家还足以写在配置文件中:

[[ 条件1 && 条件2 ]]那般使用

单分支if语句

 

 

#!/bin/bash

while CONDITION; do

<< Here Document

   arrya[1]=var2      

再有一点点要专心:

&> 重定向标准输出或错误输出至同三个文本

-s FILE: 推断文件是不是存在且大小大于0

bash的配备文件:

* 大肆长度的字符串

4、命令行编辑

变量名或函数名并非太长

   find ./ -name ex* | xargs mv /backup

 

 

!!: 推行上一条命令;

echo "What is your favourite OS?"

profile类的公文:

双拨出的if语句:

如:cat /var/log/message |less

 

 

巡回调控---while

措施二此外意气风发种写法:

-e FILE:测验文件是或不是存在

字符测量检验:

 

$#:获取当前shell命令行中参数的总个数

设定本地变量

-ne: 测量试验四个整数是不是不等;不等,为真;相等,为假;

for (( i=0; i<$lenarr}; i )); do    

5、文件名通配:globbing

设定意况变量

echo ${array[@]:0:2}  #从第二个成分开首次展览示五个元素

顾客配置文件:~/.bashrc

LANG/LANGUGE:是和语言相关的情形变量,使用二种语言的客户能够改过此蒙受变量

运营命令或脚本

done < /PATH/TO/SOMEFILE

#!/bin/bash

 

指令替换: $(COMMAND), 反引号:`COMMAND`

2、管道、重定向

 

select (产鹅仔菜单选择)

statement

...

$?:上三个指令的实施景况再次来到值,echo $0结果生机勃勃旦为0代表成功,非0表示失败.

PS2:是专门项目提醒符,私下认可是“>”。能够通过更正此情形变量来订正当前的命令符

 

[ expression ]

 statement

不可以

echo ${$A} 或 expr length $A

重要从以下多少个方面实行bash入门级的总括:

bash援助的引号:

 ...

 echo ${arr[$i]}

[[ expression ]]  -----在Bash高版本中基本上只好用这一个高档的了...上边十三分会报错!

done

[:punct:]:标点符号

后台试行命令:& nohup

2).$[算术运算表达式]

循环调整语句

跻身循环:条件满足

4.set 显示本地定义的shell变量

case SWITCH in

-gt: 测量试验一个数是还是不是超越另二个数;大于,为真;不然,为假;

OLDIFS=$IFS

-c:清空命令历史

 

2>> 追加方式

C=`expr $A $B`

在编写的每一个脚本文件中,应当富含文件注释、脚本用场轻松描述、版本、小编等...如:

非登入式shell怎么着布置文件?

 

tLen=${#fileArray[@]}      

循环列出数组成分:

done

.........

value2)

 

 

指令外号

 

unset array[2] #删除第多个要素

逻辑或: ||

!string:实行命令历史中近期八个以钦赐字符串开首的下令

5、文件名通配

名称尽量接纳大写或大写早先

done

2.代码注释

 

可以

三种用法:

echo ${array[@] %%o}  # 从字符串的结尾最早最长的相称

> 覆盖输出

非常规变量:

echo ${array[@] //o/}  #尚无点名替换子串,则删除相配到的子符

num=2

done

 

*: 任意长度的率性字符

一声令下历史的运用技术:

C=$[$A $B]

echo $line

 ...

#Version: ....

(2) array=([0]=var1 [1]=var2 [2]=var3 ... [n]=varN)  

 

for (( expr1 ; expr2 ; expr3 )); do

如:

Ctrl l: 清屏

Ctrl a:跳到命令行首

 

-f FILE: 测量试验文件是不是为平日文书

until跟while相反,可参照while

!$:引用前八个限令的终极三个参数;

5.unset 消释景况变量 unset HELLO

 

statment

 

3.env 彰显全体遇到变量

瞩目:不时候变量名非常轻易与其余文字混淆,譬如大家在某些变量的值后边增添内容:

unset array    #剔除全部数组

-n string: 测量检验钦命字符串是还是不是为空,空则真,不空则假

MAIL:是指当前客户的邮件寄放目录

 

 

渠道补全:搜索我们付出的前奏路线下的各样文件名,并计划补全;

显示数组成分:

 

 

 

4).expr 算术运算说明式,表明式中各操作数及运算符之间要有空格,而且要利用命令引用

 

"*/5 * * * * /usr/sbin/ntpdate ntp.api.bz > /dev/null 2>&1

 let i

 echo ${arr[$i]}

1.echo 显得有些意况变量值 echo $PATH

 

一声令下追踪:bash -x 脚本名

..........

statment

C=$(($A $B))

 

选用结构--case

while read LINE; do

上面总计下标准测量检验项目

echo ${array[@]}

 

2、管道、重定向

 

 

until CONDITION; do

那并不会打字与印刷出"this is the 2nd",而唯有打字与印刷"this is the ",因为shell会去追寻变量numnd的值,不过这么些变量时从没值的。尚可花括号来告诉shell大家要打字与印刷的是num变量:

[abc], [a-m], [a-z], [A-Z], [0-9], [a-zA-Z], [0-9a-zA-Z]

exit: 退出脚本

if 推断标准1; then

# 是 0 表示符合规律退出

1、命令历史、命令补全

[a-n] 从a到n的任一字元

8、bash中的数组

LOGNAME:是指当前客商的登入名

172.28.9.45www01.opsmysql.com

翻开命令历史:history

 

标准测量试验的表明式:

 

#!/bin/bash

-ge: 大于或等于

``: 命令替换

 

6、Bash的连带安插文件及变量

一声令下补全,路线补全

$!:奉行上叁个发令的PID

[:alnum:]: 数字和尺寸写字母

if 决断规范; then

暂停循环,而后试行循环前边的语句;暗中同意是跳出风姿罗曼蒂克层循环,假设要跳出多层循环,能够用 break n(n是大于1的数字,也就次数卡塔 尔(英语:State of Qatar)。

A=3

# restore it  

 

# 循环突显文件内容  

 echo "${fileArray[$i]}"  

命令1 | 命令2 | 命令3 | ...

echo "The date time is : `date`"

 

1).let 算术运算表达式

 

 

elif 判别规范2; then

 

arr=(ab bc cd)

通常:

echo ${array[*]}  #显示全数因素

文本测量检验:

逻辑与: &&

cat ip.txt | while read line

子串替换:

-d FILE: 测验钦点路径是还是不是为目录

在shell中定义的别称仅在当下shell生命周期中央银卓有成效;别称的实用限定仅为近年来shell进度;

7、编制程序(条件判定、循环调整)

break

nohup命令的貌似格局为nohup command &

 

指令补全:寻找PATH情形变量所钦命的各种路线下以大家提交的字符串开始的可试行文件,如果多于一个,三次tab,能够提交列表;不然将直接补全;

echo ${array[@]#t*e}  # 左边初阶最短的极其:"t*e",那将协作到"thre"

while :; do

6、Bash相关配置文件及变量

后面略!

赢得数组成分个数恐怕长度:

 

巡回调节---for

个体配置

(1) ${#array[@]}      

${变量%关键字}--------->若变量内容从尾向前的素材相符‘关键字’,则将适合的最短资料删

 statement

fileArray=($(cat file.txt))      

/etc/profile, /etc/profile.d/*.sh, /etc/bashrc

break

循环体

statement1

done

1、命令历史、命令补全

>> 追加输出

9、shell编制程序本领和编制程序标准

<

#Author: Andy

 ...

[:lower:]:小写字母

表达:value1) 是正则表明式样式,能够用上面字符:

? 放肆单个字元,???? 表示4个字符的字符串

三个实例:

 

[:space:]:空白字符

echo "The date time is : $(date %F)"

[]:相称钦赐范围内的随机单个字符

 

fi

test expression

 

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划 随笔