shell脚本基本用法
下面是一些简单常用的脚本,工作中可能会用到,记录一下。
#!/usr/bin/env bash
#变量[=两边不要有空格], 在使用的时候需要用${变量名} 或者是$变量名
name="san"
echo $name
allName="zhang $name"
echo $allName
#-------------------------------------------------------------------------------
注意: 在IDEA中编写shell的时候,要将行尾符号设置为LF方式,而不是windows 的CRLF方式。
#-------------------------------------------------------------------------------
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
#-------------------------------------------------------------------------------
#变量做运算
# $[a + b]
a=4
b=5
c=$[a + b]
echo "c=$c"
echo $[a * b]
echo $[a + b]
echo $[3 * 10]
#-------------------------------------------------------------------------------
#if条件
# [注意:1. 中括号两边需要有空格]
#- eq —比较两个参数是否相等(例如,if [ 2 –eq 5 ])
#-ne —比较两个参数是否不相等
#-lt —参数1是否小于参数2
#-le —参数1是否小于等于参数2
#-gt —参数1是否大于参数2
#-ge —参数1是否大于等于参数2
#-f — 检查某文件是否存在(例如,if [ -f "filename" ])
#-d — 检查目录是否存在
if [ $c -lt 10 ]
then
echo "if 执行了。。"
fi
#-------------------------------------------------------------------------------
#if-else条件
if [ $c -gt 10 ]
then
echo "1";
else
echo "2";
fi
#-------------------------------------------------------------------------------
#if else-if else
if [ $c -gt 10 ] && [ $b -lt 5 ]
then
echo "if-elseif -1";
elif [ $c -lt 10 ]
then
echo "if-elseif -2";
else
echo "if-elseif -3";
fi
#-------------------------------------------------------------------------------
#swith
#-------------------------------------------------------------------------------
#数组
array_name=(value1 valuen)
my_array=(A B "C" D)
#-------------------------------------------------------------------------------
#for循环
# 遍历数组[循环数组的方式]
for item in ${my_array[@]}
do
echo "循环中 $item"
done
#遍历列表[]
for var in item1 item2 item3
do
echo "for列表输出-----$var"
done
#-------------------------------------------------------------------------------
#while循环
a=1
b=10
c=20
#while condition #单条件用(),双层括号中间不能有空格;多条件用[]
#while (($a <=5)) 单条件
while [ $a -lt 5 ] && [ $b -gt 5 ] && [ $c -gt 0 ] #多条件
do
echo "while循环测试 a=$a";
let "a++" # i++操作
let "b--"
done
#-------------------------------------------------------------------------------
#函数定义
#函数注意事项:
#1. 函数调用一定要在函数声明之后
#2. 函数的返回值只能是数值,范围0-256
#3. 函数内的局部变量用local声明,且作用范围为函数体内
#4. 定义函数的形参不用显式声明
function testfun(){
local var="函数内的局部变量" #局部变量
local var1=4
echo "参数 $1"
echo "参数 $2"
echo "参数 $3"
echo "所有的参数一块输出 $*"
echo $var
echo $var1
return
}
#函数调用
testfun param1 param2
total=$(testfun param1 param2)
echo "----------------------------------"
echo $total
#-------------------------------------------------------------------------------
# shell脚本结合 linux命令使用
#注意:
#1. Linux 的命令可以直接在shell中使用
#2. 单行命令后面可不用强制加分号 ; 但是如果单行有多个命令,则每个命令后面需要加分号
#第一种方式 data=`command`
data=`ls . |wc -l`
data=`find E:/home/sdata/sdata3-staticindex/ -name "*.data" |xargs grep "1001681445" `
#echo $data
#第二种方式 data=$(command)
data1=$(ls .|wc -l)
#echo $data1
#-------------------------------------------------------------------------------
# shell 脚本代码块直接在命令行执行 ,直接用()包住即可
(
#for fileName in `find . -name "30012.2019010*.log" |more`
for fileName in $(find . -name "30012.2019010*.log"|more)
do
echo "start unzip $fileName"
unzip $fileName
done
)
shell脚本基本用法的更多相关文章
- Shell脚本exit用法与区别
在Shell脚本中,往往会遇到一些判断类型为某个值不符合预期值的时候就退出主脚本/当前脚本/当前函数,那么Exit与return的用法与区别是什么呢? 下面先使用Exit举个简单例子,脚本内容如下 # ...
- php类似shell脚本的用法
参考: http://www.cnblogs.com/myjavawork/articles/1869205.html php还可以用于类似于shell脚本,哈哈,对编程语言和对整个计算机系统的认识又 ...
- Shell脚本中的逻辑判断、文件目录属性判断、if的特殊用法、case判断
1.Shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi格式2:if 条件; then 语句; else 语句; fi格式3:if …; then … ;elif …; then ...
- Shell脚本、Shell脚本结构、date命令的用法、变量
1.Shell脚本: shell是一种脚本语言 目的:可以实现自动化运维,能大大增加运维的效率.2.Shell脚本结构: #!/bin/bash 以#!/bin/bash开头,即以/bin/ba ...
- Linux上shell脚本date的用法
在shell脚本里date命令的用法: %% 一个文字的 % %a 当前locale 的星期名缩写(例如: 日,代表星期日) %A 当前locale 的星期名全称 (如:星期日) %b 当前local ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- Linux定时对日志批量打包Shell脚本及定时任务crontab 详细用法
一.需求背景 因此次项目的生产环境中部署了多套系统,每天会产生大量的日志(数百GB的量),侵占了服务器宝贵的存储资源空间.为了有效缓解服务器存储压力,考虑通过Linux的Shell脚本结合cr ...
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ...
- Linux shell脚本中shift的用法说明【转】
本文转载自:http://blog.csdn.net/zhu_xun/article/details/24796235 Linux shell脚本中shift的用法说明 shift命令用于对参数的移动 ...
随机推荐
- 使用RVM轻松部署Ruby环境
Ruby用得不多,但发现有业务需要部署指定的版本和插件.起初找了一些Fedora的src.rpm重新打包,发现依赖问题比较多,最终还是费劲的把el6的包编出来了. 不巧今天又有业务要求el5的包,原本 ...
- 响应式布局之媒体查询 @media
Media Queries,其作用就是允许添加表达式用以确定媒体的环境情况,以此来应用不同的样式表.换句话说,其允许我们在不改变内容的情况下,改变页面的布局以精确适应不同的设备. 媒体查询有两种玩法, ...
- 2008 Round 1A C Numbers (矩阵快速幂)
题目描述: 请输出(3+√5)^n整数部分最后3位.如果结果不超过2位,请补足前导0. 分析: 我们最容易想到的方法肯定是直接计算这个表达式的值,但是这样的精度是不够的.朴素的算法没有办法得到答案.但 ...
- mysql-connector-python取二进制字节时报错UnicodeDecodeError:'utf-8' codec can't decode byte 0xb0 in position 0
在储存用户密码时,我使用了hmac算法对用户密码加密,加密出来的hash值是一个二进制字节串,我把这个字节串存到mysql的password字段,password字段的数据类型是varbinary. ...
- Python作业工资管理系统(第三周)
作业内容: 实现效果: 从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件. 效果演示: 1. 查询员工工资 2. 修改员工工资 3. 增加新员工 ...
- 安装JDK环境变量的配置
设置环境变量 在java中需要设置三个环境变量(1.5之后不用再设置classpath了,但是个人强烈建议继续设置以保证向下兼容问题) JDK安装完成之后我们用来设置环境变量:右击”我的电脑“,选择” ...
- Java爬虫(二)
上一篇简单的实现了获取url返回的内容,在这一篇就要第返回的内容进行提取,并将结果保存到html中.而且这个爬虫是基于python爬虫的java语言实现,其逻辑大致相同. 一 . 需求: 抓取主页面: ...
- Linux下帮助命令
帮助命令(各种命令区别) 最常用的帮助命令 help --help help cd 查看内置命令的使用 info man help cd 查看内置命令的使用 获得帮助的途径: ma ...
- python设计模式之内置装饰器使用(四)
前言 python内部有许多内建装饰器,它们都有特别的功能,下面对其归纳一下. 系列文章 python设计模式之单例模式(一) python设计模式之常用创建模式总结(二) python设计模式之装饰 ...
- python基础===python自带idle的快捷键
Ctrl + [ Ctrl + ] 缩进代码Alt+3 Alt+4 注释.取消注释代码行Alt+5 Alt+6 切换缩进方式 空格<=>TabAlt+/ 单词完成,只要文中出现过,就可 ...