shell文件以.sh结尾,这是一种习惯而已。第一行以#! /bin/bash开头;表示该文件使用的是bash语法;

如果不设置该行,你的shell脚本也可以执行,但是不符合规范。#表示注释。

# vim first.sh

输入以下内容

#! /bin/bash

date

echo "Hello world!"

退出文件编辑

# sh first.sh   执行脚本

# ./first.sh   提示权限不够

# chmod +x first.sh

# ./first.sh   执行脚本

# sh -x first.sh  查看shell的执行过程,方便调试

date用法

date  +%Y:以四位数字格式打印年分

date +%y:二位数展示年分

date +%m :月份

date +%d:日期

date +%H:小时

date +%M:分钟

date +%S:秒

date +%w:星期;0表示周日。

# date +"%Y-%m-%d %H:%M:%S"

# date -d "-1 day" +%d  一天前的日期

# date -d  "-1 hour" +%H  一个小时前

# date -d  "-1 min" +%M   一分钟前

变量

  1)变量名=变量值

  2)脚本中的反引号(键盘左上角 波浪线键)是将字符串当成shell命令执行,返回命令的执行结果。

d=`date  +%H:%M:%S`   变量

echo "脚本开始时间 $d."

echo "现在休眠2秒"

sleep 2

d1=`date +%H:%M:%S`     变量

echo  "脚本结束:$d1."

数学运算

a=1

b=2

sum=$[$a+$b]

echo "$a+$b=$sum"

和用户交互

read -p   "请输入一个数字:" x

read -p  "请再次输一个数字:" y

sum=$[$x+$y]

echo   "这个和是:$sum"

脚本预设变量

文件a.sh,内容如下

sum=$[$1+$2]

echo "sum=$sum"

执行脚本  sh a.sh   1 2

输出结果 sum=3

$1和$2是shell脚本的预设变量。  $0表示脚本本身的名字。

逻辑语句

  if

    if   判断语句;  then

       command

    fi

编写脚本文件 a.sh

read -p "请输入一个数字:" a

if((a<60)); then

echo "$a 小于60"

fi

退出编辑

  if else

  if  判断语句; then

    command

  else

    command

  fi

新建a.sh,内容如下

read -p "请输入一个数字:" a

if((a<60)); then

  echo “小于60”

else

  echo "大于60"

fi

退出脚本编辑。

 else if

if 判断语句;then

  command

elif 判断语句;then

  command

else

  command

fi

新建sh文件a.sh,脚本如下

read -p "请输入数字:" a

if((a<60));then

  echo "小于60";

elif ((a<120)) && ((a>=60)); then

  echo "小于120,但是大于60"

else

  echo "大于120"

fi

判断大小除了使用(())形式外,还可以使用[ ];但是不能使用>,<,=了;

要使用-lt(小于),-gt(大于),-le(小于等于),-ge(大于等于),-eq(等于),-ne(不等于)。

# a=10; if [$a  -lt 5 ];then echo ok; fi

# a=10;if [$a  -gt 5];then echo ok; fi

# a=10; if [$a  -lt  1] || [$a  -gt  5];then echo ok;fi

文档的判断

格式:

if [-参数  filename];then

  command

fi

参数:

  -e:判断文件或目录是否存在

  -d:判断是不是目录以及是否存在。

  -f:判断是不是普通文件以及是否存在

  -r:判断是否有读的权限

  -w:判断是否有写权限

  -x:判断是否可执行

示例:

  if [ -d /home/];then echo ok;fi    判断home是否是目录以及是否存在。

case 逻辑判断

case 变量 in

value1)

  command

  ;;

value2)

  command

  ;;

*)

  command

  ;;

esac

read -p "输入一个数字:" n

a=$[$n%2]

case $a in

1)

  echo "奇数"

  ;;

2)

  echo "偶数"

  ;;

*)

  echo "不是一个数字"

  ;;

esac

for循环:seq 1 5表示从1 到5的序列。

示例1

for i in `seq 1 5`;do

  echo $i

done

示例2 :循环字符和数字的组合

for i in 1 2 3  a b;do echo $i;done

示例3:循环系统命令

for i in  `ls`;do echo $i;done

while 循环

while 条件;do

  command

done

示例1:

a=5

while [$a -ge 1];do

  echo $a

  a= $a-1

done

示例2:while死循环,用于监控

  while  :;do

    sleep 3

  done

函数

function sum()

{

  sum1=$[$1+$2+$3]

  echo $sum1

}

sum $1 $2 $3

运行脚本: sh a.sh 1 3 4    结果是8

break或continue(用法相似)

for i in `seq 1 5`

do

  echo $i

  if [$i==3]

  then

    break(或者 continue)

  fi

  echo $i

done

  echo aaa

exit退出整个shell脚本

CentOS之Shell文件编写基础的更多相关文章

  1. shell 脚本编写基础

    在进行Linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入 ./smartzip就能运行脚本了.. 每行 ...

  2. shell scripts 编写基础

    一.shell变量的相关用法: 变量作为被赋值的一方的时候不加$,只有在使用其值的内容的时候需要加上$,该符号可 1,变量中的单引号‘’.双引号“”“.反单引号‵`.括号().大括号{}.双括号(() ...

  3. linux的基本操作(shell 脚本的基础知识)

    shell 脚本的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本 ...

  4. Shell编程入门基础上

    前言 为什么学 Shell Shell 脚本语言是实现 Linux/UNIX 系统管理及自动化运维所必备的重要工具, Linux/UNIX 系统的底层及基础应用软件的核心大都涉及 Shell 脚本的内 ...

  5. SHELL脚本编程基础知识

    SHELL脚本编程基础知识 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux之父Linus有一句话很经典:"Talk is cheap, show me the ...

  6. shell脚本编程基础介绍

    Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...

  7. liunx shell 脚本的基础知识

    Shell脚本编程30分钟入门====================## 什么是Shell脚本### 示例看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell ...

  8. shell脚本编写笔记

    包含转载内容,转载自http://wenku.baidu.com/link?url=jtCHxEYzgGve6P64U3JRQRgU6nhpGvqFLLpWu9I2Htq6hi9TGLudRFkk7r ...

  9. linux 脚本编写基础(一)

    1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在 ...

随机推荐

  1. hermes 试用

    hermes 是一个不错的基于kafaka 的event broker,基于push模型(webhook) 测试环境使用docker-compose 运行 环境准备 docker-compose   ...

  2. openstack--1--基础环境搭建

    Openstack介绍 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. Openstack包含三大项 ...

  3. java考试感受

    开学不久,我们进行了一次java程序考试.在此之前,老师要求我们在假期自学java并提前发了一个考试样卷,要求用数组编写一个学生信息管理系统并能够实现一系列的功能.由于我早早的便完成了这道题.因此对这 ...

  4. vue项目权限控制

    Vue权限控制有各种方法,大概分为两个方向: 把当前角色对应的权限保存在浏览器本地(容易被恶意修改): 将操作权限保存在vuex中(推荐此种方式:页面一刷新就没了,可以再次向后端请求相关数据,始终保持 ...

  5. ubuntu 客户机安装VMware tools时出现编译错误,无法与主机共享文件(转)

    主机:win7旗舰版 vmware workstation 10.0.7 (其他10.x版本也有这个问题) 客户机:Ubuntu14.04.4-16.x 安装vmware tools时出现下列编译错误 ...

  6. [C#]async和await刨根问底

    上一篇随笔留下了几个问题没能解决:· 调用IAsyncStateMachine.MoveNext方法的线程何时发起的?· lambda的执行为何先于MoveNext方法?· 后执行的MoveNext方 ...

  7. windows系统如何设置域名解析

      C:\Windows\System32\drivers\etc        

  8. 关于SD-SDI,HD-SDI,3G-SDI行号的问题

    关于SD-SDI,HD-SDI,3G-SDI行号的问题 1.资料来源 2.行号的插入信号 SD-SDI mode的信号不需要行号 HD-SDI,3G-SDI mode的信号必须插入行号 3.edh的插 ...

  9. StyleCop(C#代码检测工具)

    StyleCop(C#代码检测工具)   一.StyleCop是微软的一个开源的静态代码分析工具,检查c#代码一致性和编码风格. 二.下载地址   http://stylecop.codeplex.c ...

  10. mycat配置安装测试

    https://www.jianshu.com/p/26513f428ecf #下载安装#java jdk mkdir /usr/local/java/tar -zxvf jdk-7u80-linux ...