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基础脚本合集的更多相关文章

  1. Shell 脚本合集

    0. 说明  Shell 脚本合集 1. xcall.sh xcall.sh 编写为了为了同时对多台服务器进行操作,编写完成之后,将其发送到 /usr/local/bin 下 #!/bin/bash ...

  2. linux基础操作命令合集(一)

    linux基础操作命令合集(一) 目录 linux基础操作命令合集(一) 一.命令行提示符 二.切换用户 三.主机名称命令 3.1.临时设置主机名 3.2.永久设置主机名 四.查看系统版本 五.网卡相 ...

  3. 自编shell脚本合集(完善中)

    1.数据库备份 #!/bin/bash user="root" psword="root" bakdir="/data/mysqlbak" ...

  4. Shell编程—基础脚本

    1. 使用多个命令 如果要两个命令或者多个命令一起运行,可以把它们放在同一行中,彼此间用分号隔开. 2. 创建 shell 脚本文件 例如: #!/bin/bash # This script dis ...

  5. VBS脚本合集(自制脚本)

    一.视频搜索器选择: Selectitem() '######################################### Function  Selectitem() 'Set Vedio ...

  6. Android基础系列合集

    四大组件 1.Service Android四大组件-Service Android-远程Service Service 动态更新 UI 2.Activity Android四大组件-Activity ...

  7. Java 基础系列合集

    Java基础知识你知道多少? Java特性 Java三大特性:封装,继承,多态 Java 抽象类与接口 Java 浅拷贝和深拷贝 Java static和final Java 内部类.静态内部类.匿名 ...

  8. Java面试基础部分合集

    写在前面:这篇文章对于在Java方面已经很牛逼的大手,就没必要看了,因为对于你们来说,这tm简直太简单了.... 面试我们都经历过,你真的懂面试吗?针对面试我只想说一点,面试的目的不是让考官知道你怎么 ...

  9. Linux一键脚本合集vps

    首先,想说说一键脚本流行的原因何在? 众所周知的是,Linux 是占据大半壁江山的服务器系统,但在桌面上的占有率可就远不是那么回事儿了,使用和熟悉 Linux 的人远没有 Windows 多,但又因为 ...

随机推荐

  1. C#里,如何模拟DataGridView里的一个Cell的Click事件。

    //假设dgv是一个DataGridView. //我要点击第3行的第二个cell. //当然,要有一个点击事件.假设dgv_CellClick是那个点击事件. dgv_CellClick(dgv,  ...

  2. MySQL中的IFNULL,IF,NULLIF函数

    MySQL中的IFNULL函数和IF函数 MySQL中的IFNULL函数类似于Oracle中的NVL函数,其表达式为:IFNULL(expr1,expr2),含义是:如果第一个参数不为空,则返回第一个 ...

  3. C#程序集Assembly学习随笔(增补版,附图)_AX

    上篇我讲了下我对Assembly的初步认知.现在来说说怎么使用已有的Assembly.比如说我在做一个解决方案时,发现你做的解决方案的某个项目中的类的方法(功能)我正好可以用到,哈,那我就不用写类了, ...

  4. nginx源代码分析之内存池实现原理

    建议看本文档时结合nginx源代码. 1.1   什么是内存池?为什么要引入内存池? 内存池实质上是接替OS进行内存管理.应用程序申请内存时不再与OS打交道.而是从内存池中申请内存或者释放内存到内存池 ...

  5. iOS:UICollectionView的扩展应用

    一.介绍 CollectionView是iOS中一个非常重要的控件,它可以实现很多的炫酷的效果,例如轮播图.瀑布流.相册浏览等.其实它和TableView很相似,都是对cell进行复用,提高系统性能. ...

  6. B样条

    在数学的子学科数值分析里,B-样条是样条曲线一种特殊的表示形式.它是B-样条基曲线的线性组合.B-样条是贝兹(贝塞尔)曲线的一种一般化,可以进一步推广为非均匀有理B样条(NURBS),使得我们能给更多 ...

  7. 一次问题追查----短字符串签名算法引发的bug

    近期开发代码, 出现了一些诡异现象.追查原因是公司使用的签名函数出现的问题. 问题: 代码使用的签名库函数, 对于<=4字节的字符串, 签名就是本身. #include<stdio.h&g ...

  8. iOS 开发-Certificate、App ID和Provisioning Profile之间的关系

    模拟器调试的时候有的时候不能检验出程序在真实手机上的差别,如果需要进行真机测试或者发布应用到App Store上去的时候, 公司如果没有开发过App,你可以从头开始弄,大部分都是后来接手的,那么当我们 ...

  9. java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值

    问题来源:我在执行sql生成json并存入数据库是报的错. 原因:存json的字段我定义其类型为varchar2. 分析:这个异常是指,用户向数据库执行插入数据操作时,某条数据的某个字段值过长,如果是 ...

  10. art虚拟机介绍

    Android 4.4提供了一种与Dalvik截然不同的运行环境ART(Android runtime)支持,ART源于google收购的Flexycore的公司.ART模式与Dalvik模式最大的不 ...