shell 文件 数字比较

echo ‘1.2*2’|bc

++++++++++++++++ 数字比较
方式1:
agm1=50
agm2=60

if [  3 -eq 3 -a  ${agm1} -ne ${agm2}  -a ${agm2} -gt ${agm1} -a ${agm1} -ge 50 -a ${agm1} -lt ${agm2} -a ${agm2} -le 60 -o 4 -gt 3  ]; then
  echo ‘yes‘
else
  echo ‘no‘
fi

方式2:
agm1=‘ye‘
agm2=‘ye‘

if [[ "$agm1" == "$agm2" &&  "$agm1" == ‘ye‘ && 2 > 1 && 1 < 2  ]]; then
  echo ‘yes‘
else
  echo ‘no‘
fi

注意: 字符串比较必须加双引号

总结:
-f  文件是否存在
-d  目录是否存在
-s  文件存在且不为空
-e  存在的是目录或文件
-L  是否快捷链接

-r   文件是否可读
-w  文件是否可写
-x  文件是否可执行

-eq  是否相等
-ne  是否不等于
-ge  是否大于等于
-gt  是否大于
-le  是否小于等于
-lt  是否小于

-a  且
-o  或

[ * ]   大括号一般字母可用
[[*]]   双大括号一般 && || > < >= <= == !=符合可用

上述相关可以在 help test 详细讲解

条件控制语句

获取内存大小: free -m |grep buffers\/|awk ‘{print $NF}‘

判断是否数字:
#!/bin/bash
str=‘123‘
[ -n "`echo ${str}|sed ‘s#[0-9]##g‘`" ] && {
  echo ‘no int’
  exit 1
}

或者
[ -n "`echo hello123|sed ‘s/[0-9]//g‘`" ] && echo ‘no int‘ || echo ‘is int‘

时间: 2024-10-05 23:26:58

shell 文件 数字比较的相关文章

二、shell文件权限和脚本执行

一.认识权限和用户管理 1.查看权限 权限类型: 1.r 读 2.w 写 3.x 可执行 Linux用户 1.所有者(u) 2.所属组(g) (所有者及所有者所在组的全部用户) 3.其他用户(o)(其他组的所有用户(包括文件所有者)) 4.所有用户(a) 文件权限解读 文件类型 所有者权限  所属组权限  其他用户权限            所有者  用户所在的组  文件大小  创建时间  文件名 [[email protected] ~]# ll 总用量 100 -rw-------. 1 r

shell--11、Shell 文件包含

和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filename   # 注意点号(.)和文件名中间有一空格 或 source filename 实例 创建两个 shell 脚本文件. test1.sh 代码如下: #!/bin/bash url="http://www.baidu.com" test2.sh 代码如下: #!/bin/bash #使用 . 号来引用test1.sh 文件

shell文件管理jenkins构建过程---window环境下报错:找不到shell文件

window环境下报错:找不到shell文件.查看jenkins本地文件,可以查看到shell文件: 检查job配置: 发现使用的是Execute shell; 这个项目只能在liunx下使用,在window环境只能使用 Execute Windows batch command

自解压shell文件的制作

项目开发完成之后,我们需要部署到生产环境中,如果生产环境的采用集群的方式,我们一个一个把项目拷贝到生产环境中,然后搭建项目的运行环境:显然这是一个低效率的做法,如果后期哪个文件有个小修小改的,那是相当痛苦的. 下面将介绍一个shell实现自解压的方法,将我们的zip[gz/bz2]压缩包打包到shell文件中,执行shell文件时,自动解压zip文件到相关目录,并执行一系列的环境部署操作: 首先看下面一段shell内容,auto_unzip.sh文件内容: #!/bin/bash #解压的目标目

Linux Shell系列教程之(十七) Shell文件包含

本文是Linux Shell系列教程的第(十七)篇,更多Linux Shell教程请看:Linux Shell系列教程 通过文件包含,可以引用其他文件的内容,也可以将复杂内容分开,使程序结构更加清晰. 所以高级语言都支持文件包含或者包的引用,Shell当然也支持,接下来就为大家介绍下Shell文件包含的相关知识. 一.Shell文件包含格式 Shell文件包含的格式如下,使用点号“.”+文件名包含: . filename 或者source+文件名: source filename 二.Shell

Shell 文件包含

Shell 文件包含 和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filename # 注意点号(.)和文件名中间有一空格 或 source filename   实例 创建两个 shell 脚本文件. test1.sh 代码如下: #!/bin/bash # author:菜鸟教程 # url:www.runoob.com url="http://www.runoob.com" te

Shell脚本编程之Shell文件包含

1.和其他语言一样,Shell也可以包含外部脚本,这样可以很方便的封装一些公用的代码作为独立的文件 实例:testShellFileInclude.sh 脚本如下: #!/bin/bash #Shell 文件包含的语法格式如下 :<<! . filename #注意点号(.)和文件名中间有一空格 or source filename ! #使用 . 号来引用test1.sh 文件 . ./test1.sh # 或者使用以下包含文件代码 source ./test1.sh echo "

Linux下环境变量设置技巧,不用/etc/profile而是在/etc/profile.d目录下新建特定的shell文件来设置

区别: 1.两个文件都是设置环境变量文件的,/etc/profile是永久性的环境变量,是全局变量,/etc/profile.d/设置所有用户生效,同样是永久变量,是全局变量. 2./etc/profile.d/比/etc/profile好维护,不想要什么变量直接删除/etc/profile.d/下对应的shell脚本即可,不用像/etc/profile需要改动此文件. 3.需要注意的是,/etc/profile和/etc/profile.d同样是登录(login)级别的变量,当用户重新登录sh

在Windows下生成的shell文件在上传到Linux上发现无法执行

为了批量生成shell文件,我在Windows下用knime循环生成一批shell文件,在上传到Linux上执行时发现报错: [[email protected] Stock]$ ./f_wdt_outsource_outbound_header.sh -bash: ./f_wdt_outsource_outbound_header.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录 [[email protected] Stock]$ 在将shell文件内的代码完全复制到一个新建的