参考

基础语法

数字比较 -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. 02-【servlet】

    1.什么是Servlet Servlet是JavaWeb的三大组件之一[Servlet,Filter,Listener],它属于动态资源.Servlet的作用是处理请求,服务器会把接收到的请求交给Se ...

  2. Boost::pool (1)

    POOL 什么是pool 池分配是一种非常快速的内存分配方案,但其使用受到限制.有关池分配的更多信息(也称为简单隔离存储,请参阅 池化概念和简单隔离存储). 我为什么要使用Pool? 使用池可以更好地 ...

  3. python函数:叠加装饰器、迭代器、自定义迭代器、生成式

    一.叠加多个装饰器二.迭代器三.自定义迭代器四.xxx生成式 一.叠加多个装饰器 # 加载装饰器就是将原函数名偷梁换柱成了装饰器最内层那个wrapper函数 # 在加载完毕后,调用原函数其实就是在调用 ...

  4. 3.Https服务器的配置

    1.前言: 所谓区块链,简而言之就是一种数据结构,每一个区块都像账本的每一页纸记录了该网络上的交易信息,而众多区块在时间的基础上按照顺序连接起 来就形成了区块链.区块链能够以数字方式识别和跟踪交易,并 ...

  5. XML刚学会,怎么又出来个YAML!

    XML(eXtensible Markup Language)可扩展标记语言,曾经是IT软件开发界,标记数据.定义数据的大哥大. 很多从事Spring的同学,没少花时间在写XML文件上吧? 不过随着时 ...

  6. 生产问题之泛型自动推断(JDK1.7新特性)

    今天提完代码,新来同事拉下代码后,如下代码出现异常: List<TblBlockMoneyDtl> transData = new ArrayList<>(); 分析原因后发现 ...

  7. Oracle之:Function :getcurrdate()

    getdate()函数连接请戳这里 create or replace function getcurrdate(i_date date) return date is v_date date; v_ ...

  8. zookeeper 客户端 zkCli 命令详解

    该文写的比较详细 https://blog.csdn.net/feixiang2039/article/details/79810102

  9. 04 vue-cli 脚手架、webpack-simple模板项目生成、组件使用

    alice https://www.cnblogs.com/alice-bj/p/9317504.html https://www.cnblogs.com/alice-bj/p/9318069.htm ...

  10. react入门及简单配置

    直接script引入的不说了 1.npm i -g create-react-app 2.create-react-app my-app (其中my-app为项目名称) 3.进入项目cd my-app ...