shell 不等于0_Linux中的Shell编程运算符、条件控制、变量讲解

Linux中的Shell编程,是众多学习操作Linux必不可少的。这里简单分享一下一点感想。Shell程序的语法比较特殊,变量的引用,运算符的使用,条件控制语句都和熟悉的C,Python有的区别。简单谈谈一些容易犯错和忽略的地方。

一、运算符

Shell中的运输符有三种方式。1、$((运算式)),即是用$加两个小括号。(为什么要两个小括号,我也不懂),例:$(((2+3)*5))。2、$[运算式],这种稍微能理解点,$ 加一个[],例:$[(2+3)*5]。3、expr m+n 语句,这要求运算符之间要有空格。例:TEMP= `expr 2 + 3`,且在赋予变量时使用反引号(反引号就是键盘数字1前面那个键)

二、条件控制语句 if [ ] 

条件控制语句可以对:1、字符串的比较,数值的比较。= 字符串比较,-lt 小于,-le 小于等于,-eq 等于,-gt 大于,-ge 大于等于,-ne 不等于。例:if [ "ok"="ok] ,if [ 34 -le 36 ].

2、按文件权限来判断,if [ -r /home/aa.txt ] 是判断aa.txt是否有读的权限,有-r,-w,-x 三种。

3、按文件类型来判断,-f 文件存在,且是一个常规文件,-e 文件存在,-d 文件存在且是一个目录。例:if [ -e /root/aaa.txt ] 表示判断是否有aaa.txt这个文件。

特别注意:条件控制语句中的 [  ] 中括号必须两边有空格,这是最容易忽视的地方。

三、Shell的变量

Shell变量分为系统变量和自定义变量。

1、系统变量有$HOME $PWD $USER等。查看系统变量有 set 命令。

2、一般定义变量用大写英文,且在引用是加$符号,且等号两侧不能有空格。例:A=100,echo $A。表示100赋予A这个变量,输出或引用时加上$符。撤销变量用unset A。

3、静态变量用readonly声明,例:readonly B=2 。静态变量时不能撤销的。

4、环境变量,可以在其他Shell中使用。但是必须要使用export关键字。例:在etc/profile 文件中配置:最后行加入:

TOMCAT_HOME=/opt/tomcat

exprot TOMCAT_HOME

#source /etc/protile

5、位置参数变量,得到命令行输入的信息。$n n=0表示命令本身,1-9表示第1-9个参数,10个以上使用${10}。$*表示命令行中所有参数,整体对待。$@表示命令行所有参数,把每个参数区分对待。$#代表命令行中所有参数个数。

6、预定义变量,Shell设计者预先定义的变量。$$ 当前进程的进程号(PID)。$! 后台运行的最后一个进程号。$? 返回最后一次命令执行的状态,0表示执行成功,非0表示不成功,具体数字由命令自己决定。

cf14bb4dd427a1d1eb409e11e689c2e7.png

上图表示位置参数变量。

3d28f6918460d4569ce385b1769ebee8.png

上图表示自定义变量,命令行的内容赋予自定义变量,环境变量的定义。

15f471416acfe47fef36770f93a2e741.png

上图是综合应用:输入两个数,求中间的质数。其中有read获取外部输入,if条件判断,for循环语句,运算符的比较。

提示:Shell语法和其他编程语言有些不同,注意区分。Shell编程中很多是对系统文件的操作,逻辑性不强,直接把命令行写进Shell脚本即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值