[sh]shell语法小结
基础语法
数字比较 -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语法小结的更多相关文章
- shell知识点小结
目录 引言 shell中的数组 数组的定义 数组的使用 实际的例子 shell中大小的比较 shell中的括号 shell中函数的定义 杂项知识点 字符串转数组 常用判断标志 linux后台运行相关 ...
- Shell语法规范
ver:1.0 博客:https://www.cnblogs.com/Rohn 本文介绍了Shell编程的一些语法规范,主要参考依据为谷歌的Shell语法风格. 目录 背景 使用哪一种Shell 什么 ...
- shell语法习题练习进阶版
第4章 shell语法深度习题练习 4.1 使用if,case,函数的方法将服务改成system(centos6) 4.1.1 if方法 4.1.1.1 system实现 4.1.1.1.1 编写代码 ...
- 读完学会shell语法,shell脚本80%已经学会
第3章 shell语法讲解 3.1 shell运算讲解 3.1.1 运算符的讲解 3.1.2 shell运算方式的讲解 3.1.2.1 $(())运算 [root@m01 test_init] # a ...
- makefile中的shell语法
在Makefile中写shell代码有点诡异,和不同的shell语法不太一样,如果不了解,看Makefile会莫名其妙.下面总结了一些. 1:尽在Makefile文件的目标项冒号后的另起一行的代码才是 ...
- source command not found in sh shell解决办法
在Ubuntu系统中执行脚本的时候突然出现错误"source command not found in sh shell" 这个其实在Ubuntu 当中 执行脚本默认的使用的是da ...
- Hadoop学习笔记之HBase Shell语法练习
Hadoop学习笔记之HBase Shell语法练习 作者:hugengyong 下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下: 名称 命令 ...
- [sh]shell小结
一 判断 -d 测试是否为目录.-f 判断是否为文件. -s 判断文件是否为空 如果不为空 则返回0,否则返回1 -e 测试文件或目录是否存在. -r 测试当前用户是否有权限读取. -w 测试当前用户 ...
- shell语法
基本语法列表 #linux组成:内核+工具 #linux启动: . getty:提示登录名和密码,输入之后调用login . login:login验证用户名和密码,然后调用shell . shell ...
随机推荐
- web录音——上传录音文件
捕获麦克风 一. 前言 公司项目需要实现web录音,刚刚好接手此功能,由于之前未接触过,在网上找了些资料做对比 ) https://www.cnblogs.com/starcrm/p/51 ...
- apk 查看sha1签名
1,首先使用解压工具解开apk. 2,进入meta-inf文件夹,进入命令行模式 输入如下命令 keytool -printcert -file CERT.RSA
- STM32WB HSE校准
通过改变RCC_HSECR寄存器中的HSETUNE[5:0]位域的值来校准HSE的输出频率 1.将HSE时钟配置为MCO模式输出到PA8引脚 HAL_RCC_MCOConfig(RCC_MCO1, R ...
- 8.8.ZooKeeper 原理和选举机制
1.ZooKeeper原理 Zookeeper虽然在配置文件中并没有指定master和slave但是,zookeeper工作时,是有一个节点为leader,其他则为follower,Leader是通 ...
- 使用select异步IO实现socketserver服务器 源码剖析
#_*_coding:utf-8_*_ #这是一个echo server,客户端消息,服务端回复相同的消息 import select, socket, sys, queue # Create a T ...
- 第十五届四川省省赛 SCU - 4444 Travel
给你一个一共由两种边的完全图 要求你求1到N的最短路 q队列为前沿队列(已探索过且最外围的点) p队列为未探索队列(未探索过的点) depth这个数组的用法并不是代表实际上这个点在第几层 而是防止死 ...
- 持久化存储与HTTP缓存
本文主要学习一下一些高级的HTTP知识,例如Session LocalStorage Cache-Control Expires ETag 其实主要就是涉及到了持久化存储与缓存的技术 在此之前已经学习 ...
- nginx.conf文件的使用
默认配置语法 全局---服务级别的配置 user 设置nginx服务的系统使用用户,基本上不用动 worker_processes 工作进程数---跟nginx多worker有关,增大连接数的并发处理 ...
- kubernetes的搭建以及dashboard页面的启动
###查看kubernetes状态 ``` kubectl get pods -A #查看相关状态 kubectl get cs #查看k8s的ready状态 kubectl get node #查看 ...
- 浏览器表单自动填充默认样式 - autofill问题解决
这不知道是个什么神仙网站,解决办法写的这么清楚,页面有这么让人舒服 https://lhajh.github.io/css/chrome/2018/04/17/The-chrome-browser-f ...