【shell】shell基础脚本合集
1.向脚本传递参数
#!/bin/bash
#功能:打印文件名与输入参数
#作者:OLIVER echo $0 #打印文件名
echo $1 #打印输入参数
执行结果:

2.在脚本中使用参数
#!/bin/bash
#功能:输入参数的使用
#作者:OLIVER cp $1 $2 #根据输入参数复制文件到指定位置
执行结果:

3.函数的使用
#!/bin/bash
#功能:函数的使用
#作者:OLIVER run(){
echo "Hell world"
}
run
运行结果:

4.连接两个字符串
#!/bin/bash
#功能:字符串连接
#作者:OLIVER var1="My name is :"
var2="Tom"
var=${var1}${var2}
echo $var

5.两个整数相加
#!/bin/bash
#功能:两个整数相加
#作者:OLIVER a=3
b=4
let sum=$a+$b
echo "The sum is :$sum"

除了上述方法还有其他的方法:a=1 b=2
echo $((a+b)) #方法2
echo $[ $a+$b ] #方法3
expr $a + $b #方法4
echo $a+$b|bc #方法5
awk 'BEGIN{print '"$a"'+'"$b"'}' #方法6
6.检查文件系统中是否存在某个文件
声明:文件夹/qinys/oliver下存在文件a.txt
#!/bin/bash
#功能:判断文件是否存在
#作者:OLIVER
if [ -f /qinys/oliver/a.txt ];then
echo "File exists"
else
echo "File not exists"
fi
运行结果:

7.shell脚本中的三种循环语法
#!/bin/bash
#功能:三种循环
#作者:OLIVER #for循环
for((i=0;i<=5;i++));
do
echo "for循环第$i次"
done echo "===================="
#while循环
count=1
while [ $count -lt 5 ];
do
echo "while循环第$count次"
let count++
done echo "===================="
#until循环
cnt=1
until [ $cnt -gt 5 ];
do
echo "until循环第$cnt次"
let cnt++
done

8.读取文件的第5行
head -5 filename | tail -1
9.使用echo截取字符串的一部分
语法:
echo ${var:x:y}
x: 起始位置(不包含)
y:截取长度
例子:
Linux:/qinys/oliver # str="My name is OLIVER"&&echo ${str:3:4}
name
10.echo ${str:-2}与echo ${str: -2}的区别
假如:str=abcd
echo ${str:-2}:表示当str为空的时候,则赋予值-2
echo ${str: -2}:表示截取str的后两位
11.echo命令替换字符串的一部分
echo ${variable//pattern/replacement}
12.去除字符串中的空格
Linux:/qinys/oliver # echo "a c djk"|tr -d " "
acdjk
13.输出0到20之间5的倍数
Linux:/qinys/oliver # for (( i=0; i<=20; i=i+5 )); do echo "Welcome $i times"; done
Welcome 0 times
Welcome 5 times
Welcome 10 times
Welcome 15 times
Welcome 20 times
【shell】shell基础脚本合集的更多相关文章
- Shell 脚本合集
0. 说明 Shell 脚本合集 1. xcall.sh xcall.sh 编写为了为了同时对多台服务器进行操作,编写完成之后,将其发送到 /usr/local/bin 下 #!/bin/bash ...
- linux基础操作命令合集(一)
linux基础操作命令合集(一) 目录 linux基础操作命令合集(一) 一.命令行提示符 二.切换用户 三.主机名称命令 3.1.临时设置主机名 3.2.永久设置主机名 四.查看系统版本 五.网卡相 ...
- 自编shell脚本合集(完善中)
1.数据库备份 #!/bin/bash user="root" psword="root" bakdir="/data/mysqlbak" ...
- Shell编程—基础脚本
1. 使用多个命令 如果要两个命令或者多个命令一起运行,可以把它们放在同一行中,彼此间用分号隔开. 2. 创建 shell 脚本文件 例如: #!/bin/bash # This script dis ...
- VBS脚本合集(自制脚本)
一.视频搜索器选择: Selectitem() '######################################### Function Selectitem() 'Set Vedio ...
- Android基础系列合集
四大组件 1.Service Android四大组件-Service Android-远程Service Service 动态更新 UI 2.Activity Android四大组件-Activity ...
- Java 基础系列合集
Java基础知识你知道多少? Java特性 Java三大特性:封装,继承,多态 Java 抽象类与接口 Java 浅拷贝和深拷贝 Java static和final Java 内部类.静态内部类.匿名 ...
- Java面试基础部分合集
写在前面:这篇文章对于在Java方面已经很牛逼的大手,就没必要看了,因为对于你们来说,这tm简直太简单了.... 面试我们都经历过,你真的懂面试吗?针对面试我只想说一点,面试的目的不是让考官知道你怎么 ...
- Linux一键脚本合集vps
首先,想说说一键脚本流行的原因何在? 众所周知的是,Linux 是占据大半壁江山的服务器系统,但在桌面上的占有率可就远不是那么回事儿了,使用和熟悉 Linux 的人远没有 Windows 多,但又因为 ...
随机推荐
- MECE分析法(Mutually Exclusive Collectively Exhaustive)
什么是MECE分析法? MECE,是Mutually Exclusive Collectively Exhaustive,中文意思是“相互独立,完全穷尽”. 也就是对于一个重大的议题,能够做到不重叠. ...
- 微信Access Token 缓存方法
微信Access Token默认缓存是2小时,但是需要特别强调,微信服务号和微信企业号缓存并不相同. (1)微信公众号号:每次Http请求Access Token 系统会返回不同的Token,并附带超 ...
- usaco 洛谷 P2694 接金币 题解
题目描述 在二维坐标系里,有N个金币,编号0至N-1.初始时,第i个金币的坐标是(Xi,Yi).所有的金币每秒向下垂直下降一个单位高度,例如有个金币当前坐标是(xf, yf),那么t秒后金币所在的位置 ...
- Java垃圾回收机制(转)
原文链接:Java垃圾回收机制 1. 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象:而在Java中,当没有对象引用指向原先分配给某个对象的内 ...
- html table奇偶行颜色设置 (CSS选择器)
:nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型.n 可以是数字.关键词或公式. 下面的例子, 设置表格的奇偶行背景颜色不同:单独设置表格的第1列背景颜色不同. & ...
- Zindex和png
Z轴在元素设置position为absolute或relative后被激活,起大小由z-index设置,z-index越大,元素位置越靠上.如果多个元素的z-index值相同,那么html标签中后出现 ...
- SharePoint自定义程序页面部署 不用重启IIS
SharePoint的部署方式默认是部署WSP包,尤其是有多个前端的时候WSP包的部署显得非常方便和快捷,但是WSP的部署需要重启整个IIS服务会造成SharePoint站点一段时间不能访问.结合自己 ...
- 构建-13 Analyzer APK文件分析
官方文档 使用APK Analyzer分析您的构建 [Analyze your build with APK Analyzer] Android Studio包含一个APK分析器,可在构建过程完成后 ...
- layer.msg();怎么关闭
var index = layer.msg(); $.ajax("","",function(){ layer.close(index) })
- 加快Android Studio的编译速度
从Eclipse切换到Android Studio后,感觉Android Studio的build速度比Eclipse慢很多,以下几个方法可以提高Android Studio的编译速度 使用Gradl ...