Shell脚步编写

1.shell脚本就是一些命令的集合。把需要执行的一组命令记录到文档中,再去调用这个文档。

139邮箱,收到邮件同时受到短信通知。

shell脚步编写建议:自定义脚本放到/usr/local/sbin目录下

2.第一个shell脚本

vim firstshell.sh

#! /bin/bash

##this is my first shell script

##writen by jason 2015-07-02

date

echo "Hello world !"

#! /bin/bash,开头第一行,表示该文件使用bash语法

.sh后缀,习惯

#后面跟的注释,良好习惯,便于以后查看脚步

执行脚本:sh firstshell.sh 或者 ./firstshell.sh(有时缺少权限时,chmod修改)

3.脚本中变量的使用

vi variable.sh

#! /bin/bash

## In thie shell script we will use variables

## writen by jason 2015-07-02

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

echo "This script begin at $d"

echo "Now we will sleep 2 seconds."

sleep 2

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

echo "This script end at $d1"

变量d和d1的定义时,使用反引号` `,变量内容使用到其他命令的结果(shell脚步基础知识博客中)。

脚本总引用变量,需加上$

3.1 数值运算,两个数的和 sum

vi sum.sh

#! /bin/bash

## Sum of tow numbers

## By jason 20150702

a=1

b=2

sum=$[$a+$b]

echo $sum

数学计算,要用[ ]括起来,并且最外面要加一个 $

3.2用户交互,用户输入

vi read.sh

#! /bin/bash

## Use "read" in shell script

## By jason 20150702

read -p "Please input a number:" x

read -p "Please input anoter number" y

sum=$[$x+$y]

echo "The sum of two number is : $sum"

read就是用在和和用户交互,把用户输入的字符串作为变量值

-x 查看shell执行的过程,sh -x read.sh

3.3 shell预设变量 $1,$2,$0(打印脚本本身的名字)

vi option.sh

#! /bin/bash

##

##

sum=$[$1+$2]

exho "sum=$sum"

sh option.sh 3 7

sum=10

$1,$2就是shell脚步预设的变量,默认设置好的,按顺序输入两个数字,默认赋值变量$1=3,$2=7.

同样$3,$4,$5依次后推也是预设变量。

4.脚本中逻辑判断if,if...else,if..elif..else

4.1 vi iftest1.sh

#! /bin/bash

##

##

read -p "Input your score: " a

if (($a<60)); then                                  if 判断语句 ; then

echo "Didn‘t pass the exam."                        commond

fi                                                  fi

(($a<60)),shell脚步中独有的格式,必须使用两个()

语法格式:if 判断语句;then

匹配结果执行相应的命令

4.2 if ..else

vi iftest2.sh

#! /bin/bash

##

##

read -p "Iput your score: " a

if (($a<60));then                              if 判断语句 ;then

echo "Do not pass."                          commond

else                                           else

echo "Good ! pass the exam."                  commond

fi                                             fi

4.3 if..esif..else

vi iftest3.sh

#! /bin/bash

##

##

read -p "Input your score: " a

if (($a<60)); then

echo "do not pass."

elif(($a>=60))&&(($a<80)); then

echo "good,pass."

else    echo "Very good,high."

两个判断语句通过&&或者||一起时,需要用两个(( ))隔开,单独判断

判断数值大小除(( ))形式外,还有[ ],但需用-lt(小于),-gt(大于),-le(小于等于),-ge(大于等于),-eq(等于),-ne(不等于)

if [$a -lt 60]; then

if [$a -gt 60] || [$a -lt 80]; then ....

4.4 判断文档属性

-e 判断文件或目录是否存在;-d 判断是否为目录,并存在;-f 判断是否为普通文件,并存在

;-r 判断文档是否可读;-w 是否可行;-x 是否可执行。

if [ -f /root/test.txt ]; then echo "It is file."; fi

[  ]前后一定要加空格,不然报错。

5.脚本逻辑判断 case

vi case.sh

#! /bin/bash

##

##

read -p "Input a number: " n

a=$[$n%2]

case $a in                                    case 变量 in

1)                                            value1)

echo "the number is odd."                    commond

;;                                            ;;

0)                                            value2)

echo "the number is even."                    commond

;;                                            ;;

*)

echo "this is not a number"

;;

esac

不限判断value值的个数。

6.脚本中的循环  for

vi fortest.sh

#! /bin/bash

for i in `seq 1 5`; do            for 变量名 in 循环条件 ;do

echo $i                            command

done                              done

循环条件seq 1 5表示从1-5的序列

6.1 循环条件写成一组字符串或者数字,也可以是一条命令执行的结果

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

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

7.脚本中的循环 while

vi whiletest.sh

#! /bin/bash

a=5

while [$a -ge 1]; do        while  循环条件;do

echo $a                    command

a=$[$a-1]

done                        done

8.shell脚本中函数

函数:就是把一段代码整理到一个小单元中,起个名字,调用这个单元的名字即可。

vi func.sh

#! /bin/bash

function sum()                function 函数名()

{                             {

sum=$1+$2                    command

echo $sum

}                            }

sum $1 $2                    调用函数

在shell脚本中,函数一定要写在最前面,不能出现在后面或中间,必须在最前面申明,才能为后面调用。

时间: 2024-08-10 02:08:36

Shell脚步编写的相关文章

Shell脚步之MySql分库分表备份

前言 数据备份的重要性已经不用过多强调了.这篇文章我们就以MySQL数据进行演示如何通过Shell脚步进行MySQL数据库的分库分表备份. 要求 Linux命令要求比较熟悉,Shell脚步语法规则也要熟悉,MySQL的数据库备份命令要比较熟悉.下面也会提到,如果有不懂得希望可以自行查阅资料学习. 命令窗口查询MySQL数据库列表 上面我们就通过Linux命令窗口查询到了MySQL的数据库列表 去除MySQL自带数据库获取目标业务数据库列表,查看表列表 备注:通过过滤掉MySQL自带数据库,那么就

Windows Shell Code编写中级拔高

标 题: Windows Shell Code编写中级拔高 时 间: 2013-05-28,23:59:54 一.基础知识&基本原理&一些思想方法 关于Windows Shell Code的文章论坛里的介绍也不少了,不过授之以鱼不如授之以渔,虽然有部分文章也做了大量讲解,但是几乎都是对照一份现成的代码来介绍为何那样写,为何这样写.所以如果Windows系统原理的知识相对薄弱的同学看起来还是云里雾里,也没弄懂,干脆把代码照抄走了,结果会遇到各种意想不到的异常,这篇文章叫中级拔高,而没有叫高级

shell脚本编写nginx部署脚本

下面为shell脚本编写的nginx的安装及修改nginx.conf的脚本,脚本比较简单: #!/bin/bash function yum_install(){ yum install epel-release -y yum install nginx -y} yum_install pw=/etc/nginx/nginx.confread -p "请输入组名:" zuread -p "请输入第一个ip地址:" ip1read -p "请输入第二个ip地

shell脚本编写方法

shell脚本编写就如同一门语言,涉及到运行环境.基本语法.变量定义.函数.参数(系统参数).条件判定.执行流程控制 等等问题. 本文就以下几个方面进行描述: 运行环境: shell  shebang  Path 基本语法: 命令.变量.函数.参数.条件.流程控制. 变量相关:定义.命令参数变量和系统参数 与 配置文件读取(-r cron.daily/sysstat脚本中). 函数:定义方法 条件判定与环境测试:-x -d -f 等 执行流程控制:case 等 字符串处理与高级指令: (sed

Linux Shell脚步的格式

 Shell脚步 等多个命令的组合,可以做成一个shell文件(1.sh) 赋权 执行 执行命令的方式 前两张新的进程中执行,对当前进程不产生影响(cd /tmp; pwd shell测试) 原文地址:https://www.cnblogs.com/Brake/p/12269761.html

用shell脚本编写ssh直接修改目标服务器的密码以及ssh的应用

1.在生成环境中经常要修改服务器的密码,以保证安全,可以用shell编写脚本. 用ssh直接修改对方服务器的密码可以用ssh 用户名@登录IP 后跟命令就可以实现,但是需要管理员输入密码后才能操作,为了不让管理员手动进行输入所以用expect解决此方案,由于expect是单独的命令在/bin/bash是无法使用的,所以必须要嵌套使用,<<代表以什么结尾,EOF代表以EOF结尾,spawn输入登录的命令行,expect为期待着问什么,send代表发送需要的内容,\r代表为回车符. 1台服务器修改

最基础的shell脚本编写

一.练习脚本的基本编写流程: 1.确定任务及完成任务的命令     2.编写脚本整合任务     3.授权并测试执行 二.练习: a.首先我先创建一个目录,把我们编写的脚本都放入,这样不会太乱 [[email protected] ~]# mkdir -p /root/bin[[email protected] ~]# cd /root/bin b.下面开始编译 [[email protected] bin]# vi sysinfo.sh #!/bin/bash    ##从/etc/shell

Shell脚本编写教程

建立一个脚本    Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用.所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行). 如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit.kedit.emacs.vi 等来编写我们的shell程序. 程序必须以下面的行开始(必须方在文件的第一行):#!

shell 脚本编写基础

在进行Linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入 ./smartzip就能运行脚本了.. 每行命令开头处不用就空格也行.. 第1部分. linux 脚本编写基础 1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执