Linux的SHELL学习指南

Linux

SHELL

学习指南

 

Linux

SHELL

学习指南

 

.

............................................................................................................. 

1

 

变量

........................................................................................................................................... 

2

 

Test

命令,用于条件判断

 ....................................................................................................... 

3

 

控制流结构

 

.

.............................................................................................................................. 

4

 

 

变量

 

变量设置值的模式:

 

Variable-name=value 

设置实际值到

Variable-name 

Variable-name+value 

如果设置了

Variable-name

,则重设其值

 

Variable-name:?value 

如果未设置

Variable-name

,显示未定义用户错误信息

 

Variable-name?value 

如果未设置

Variable-name

,显示系统错误信息

 

Variable-name:=value 

如果未设置

Variable-name

,设置其值

 

Variable-name:-value 

同上,但是取值并不设置到

Variable-name

,可以被替换

 

例子:

 

# colour=blue 

# echo 

The sky is 

${colour:-grey} 

tody

 

# The sky is blue tody 

 

变量的显示:

${values} 

# gero=

dir hard

 

# echo ${gero} 

# dir hard 

 

显示本地

shell

变量:

set 

# set 

 

清除变量的值:

unset 

# pc=enterprise 

# echo ${pc} 

# unset pc 

# echo ${pc} 

 

设置只读的变量:

readonly 

# tape_dev=

/dev/rmt/on

 

# readonly tape_dev 

 

环境变量:

 

# CONSOLE=tty1 

# export CONSOLE 

 

 

//CONSOLE

为环境变量

 

查看环境变量:

env 

清除环境变量:

unset CONSOLE 

 

位置参数:

$0,$1,$2

..$9 

调用

shell

时,可以在后面加的参数,在

shell

里面可以根据位置得到输入的值。

 

特殊的变量参数:

 

$# 

传递到脚本的参数个数

 

$* 

以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此参数可以超过

9

 

$$ 

脚本运行的当前进程

ID

 

$! 

后台运行的最后一个进程的进程

ID

 

$@ 

$#

相同,但使用时加引号,并在引号中返回每个参数

 

$- 

显示

shell

使用的当前选项,与

set

命令功能相同。

 

$? 

显示最后命令的退出状态。

0

:没有错误,其他值表示有错误。

 

 

Test

命令,用于条件判断

 

格式:

 

test condition 

或者

 

[ condition ] 

0

标示成功,其他的标示失败。

 

 

文件状态的测试:

 

-d

:目录

 

-s

:文件长度大于

0

,非空

 

 

-f

:文件

 

-w

:可写

 

 

-l

:符号连接

 

-u

:文件有

suid

位置

 

 

-r

:可读

 

-x

:可执行

 

 

例子:

 

# [ -w scores.txt ] 

# echo $? 

# 0 

 

//

成功

 

# test 

w scores.txt 

# echo $? 

# 0 

 

逻辑判断:

 

-a

:逻辑与,操作符两边均为真,结果为真,否正为假

 

-o

:逻辑或,操作符两边一变为真,结果为真。否则为假

 

!

:逻辑否。

 

例子:

 

# [ -w results.txt 

w scores.txt ] 

# echo $? 

# 0 

 

字符串测试:

 

=

:两个字符串相等

 

 

!=

:两个字符串不等

 

 

-Z

:空字符串

 

 

-n

:非空字符串

 

 

例子:

 

# [ -z $editor ] 

# echo $? 

# TAPE=

/dev/rmt0

 

# TYPE2=

/dev/rmt1

 

# [ 

$TAPE

 = 

$TAPE2

 ] 

# echo $? 

# 1 

 

数字测试:

 

-eq

:数值相等“

=

 

 

-ne

:数值不相等“!

=

 

 

-gt

:第一个数大于第二个数“

>

 

 

-lt

:第一个数小于第二个数“

<

 

 

-le

:第一个数小于等于第二个数“

<=

 

 

-ge

:第一个数大于等于第二个数“

>=

 

 

例子:

 

# number=130 

# [ 

$number

 

eq 

130

 ] 

# echo $? 

# 0 

 

#[ 

990

 

le 

995

 ] 

a [ 

123

 

gt 

33

 ] 

Sh

[

too many arguments 

# [

990

 

le 

995

 -a 

123

 

gt 

33

# echo $? 

# 0 

 

Expr

:命令行计算器

 

# expr 30/3/2 

# 5 

# expr 10+10 

# 20 

Expr

的其他用法还很模糊,要细看

 

 

控制流结构

 

If then else 

语句:

 

if [ test ] 

then echo 

 

 

elif [ test ] 

then echo 

 

 

else echo 

 

 

fi 

case 

语句:

 

Case $V

AR in 

1) 

echo 

1

 

;; 

2|3|4) 

 

//

或关系

 

echo 

2|3|4

 

;; 

*) 

 

 

 

 

echo 

*

 

esac 

*

:任意字符

 

?:任意单个字符

 

[

]

:类或范围中的任意字符

 

For

循环:

 

for var in 1 2 3 4 5 

do 

 

 

 

echo 

$var

 

done 

Until

循环:

 

until [ test ] 

 

//

直到为

true

 

echo 

“”

 

done 

While

循环:

 

While [ test ] 

 

//

当判断条件为

true

时执行

do

 

do 

echo 

“”

 

done 

Break

continue

控制循环:

 

Break

:跳出循环

 

Continue

:下一个循环

 

SHELL

函数

 

function hello(){ 

echo 

hello `date`

 

调用时直接使用函数名称就可。

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值