参考

基础语法

数字比较 -lt -eq -gt 

[ `ps -ef|grep nginx|grep -v grep|wc -l` -eq 0 ]

str比较  == !=

[ $USER == "root" ]

-z  变量未定义或为空串都会命中-z
[ -z $1 ]
数字运算

- 整数
echo $((1+2)) # 不能计算小数
echo "1+2"|bc - 小数
echo "1.2+2.3"|bc
- 文件检测
-f [ -f /etc/fstab ] && echo 'xx'
-d
-e
-rwx
$? $#
$0 $1 $2 $?
0 正常
1 失败
- if

if then
fi if ;then
elif ;then
fi if [ $age -gt 100 ];then
echo "age gt 100"
elif [ $age -gt 50 ];then
echo "get gt 50"
fi
- for

for i in `cat `;do
done 注: for对横排空格分隔 和 一行一个item都支持遍历 - 批量创建用户
for user in `cat user_list.txt`;do
useradd $user > /dev/null 2>&1
if [ $? -eq 0 ];then
echo "created user $user succ"
else
echo "created user $user faild"
fi
done - 批量ping
for ip in `cat ip_list.txt`;do
ping -i 0.2 -c 3 -W 2 $ip > /dev/null 2>&1
if [ $? -eq 0 ];then
echo "host $ip online"
else
echo "host $ip offline"
fi
done
- while(好处是支持死循环)

while :;do
read -p '输入新运数字: ' num
if [ -z $num ];then
continue
fi
if [ $num -gt 100 ];then
echo "succ"
else
echo "faild"
fi
done
- case分支,  好处是支持正则

while :;do
read -p "请输入一个字符" char case $char in
[a-z]|[A-Z])
echo "输出的值是字符"
;;
[0-9])
echo "输入的是数字"
;;
*)
echo "default running"
esac
done

常用命令

find
grep
sed
awk
- cat命令
name="mm"
age=22
cat > file.txt <<EOF
name = $name
age = $age
EOF
> /dev/null 2>&1

文件描述符
0 stdin
1 stdout
2 stderr
- 生成序列
seq -s ' ' 10 echo {1..10}
ping命令
-i interval
-c count
-W timeout

正则

${name}     # 引用变量
$(date +%F) # 表达式

[sh]shell语法小结的更多相关文章

  1. shell知识点小结

    目录 引言 shell中的数组 数组的定义 数组的使用 实际的例子 shell中大小的比较 shell中的括号 shell中函数的定义 杂项知识点 字符串转数组 常用判断标志 linux后台运行相关 ...

  2. Shell语法规范

    ver:1.0 博客:https://www.cnblogs.com/Rohn 本文介绍了Shell编程的一些语法规范,主要参考依据为谷歌的Shell语法风格. 目录 背景 使用哪一种Shell 什么 ...

  3. shell语法习题练习进阶版

    第4章 shell语法深度习题练习 4.1 使用if,case,函数的方法将服务改成system(centos6) 4.1.1 if方法 4.1.1.1 system实现 4.1.1.1.1 编写代码 ...

  4. 读完学会shell语法,shell脚本80%已经学会

    第3章 shell语法讲解 3.1 shell运算讲解 3.1.1 运算符的讲解 3.1.2 shell运算方式的讲解 3.1.2.1 $(())运算 [root@m01 test_init] # a ...

  5. makefile中的shell语法

    在Makefile中写shell代码有点诡异,和不同的shell语法不太一样,如果不了解,看Makefile会莫名其妙.下面总结了一些. 1:尽在Makefile文件的目标项冒号后的另起一行的代码才是 ...

  6. source command not found in sh shell解决办法

    在Ubuntu系统中执行脚本的时候突然出现错误"source command not found in sh shell" 这个其实在Ubuntu 当中 执行脚本默认的使用的是da ...

  7. Hadoop学习笔记之HBase Shell语法练习

    Hadoop学习笔记之HBase Shell语法练习 作者:hugengyong 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令 ...

  8. [sh]shell小结

    一 判断 -d 测试是否为目录.-f 判断是否为文件. -s 判断文件是否为空 如果不为空 则返回0,否则返回1 -e 测试文件或目录是否存在. -r 测试当前用户是否有权限读取. -w 测试当前用户 ...

  9. shell语法

    基本语法列表 #linux组成:内核+工具 #linux启动: . getty:提示登录名和密码,输入之后调用login . login:login验证用户名和密码,然后调用shell . shell ...

随机推荐

  1. 第八章·Logstash深入-通过TCP/UDP收集日志

    1.收集TCP/UDP日志 通过logstash的tcp/udp插件收集日志,通常用于在向elasticsearch日志补录丢失的部分日志,可以将丢失的日志通过一个TCP端口直接写入到elastics ...

  2. Windows Server 2016分层式存储,使用PowerShell修改底层介质类型

    新部署的备份服务器,需要做分层式存储,按照网上最常见一个作者叫刘兵的文档,名叫<Windows Server2016分层存储技术详细拆解手册>,做到使用PowerShell修改磁盘的Med ...

  3. Optimization Algorithms

    1. Stochastic Gradient Descent 2. SGD With Momentum Stochastic gradient descent with momentum rememb ...

  4. Java nio 理解

    Java nio 称为Java new IO ,对Java io而言的.他有两个主要的概念:缓存.通道. 在程序中,数据的来源或写入,要么网络.要么硬盘.所有通道分为:文件通道.TCP通道.UDP通道 ...

  5. java poi 读取excel内容

    import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Row; import or ...

  6. Java线程池详解及实例

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/aa1215018028/article/ ...

  7. pycharm图像不能显示,之前是可以显示的。显示一两次突然不显示了

    网上说是什么包问题的就说了.我遇到一个非常奇葩的问题 因为你的设置可能是这样 每次都在窗口右侧的工具栏那边显示.可能突然心情不佳就不显示了.然后你再把勾去掉即可.你要喜欢再点上也行.

  8. hive日期函数-Demo(二)

    需求:某资产近一个月的资产值 比如:今天是2018年2月28日,近一个月若是按照自然月来算,那么是2018年2月1日至2018年2月28日.最终需要的日期格式为:yyyyMMdd. 当日时间戳 uni ...

  9. 洛谷-P2292-L语言(字典树)

    链接: https://www.luogu.org/problem/P2292 题意: 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章T是 ...

  10. ant-design-vue 报错 ReferenceError: h is not defined

    使用表格,在配置 columns时用到了 customRender,然后就报错了 <script> import FileName from '@/views/admin/document ...