[root@xuegod63~]# sh v2-使用函数封装-公司自动处理文件备份管理的.txt

:command not found 自动处理文件备份管理的.txt: line 2:

:command not found 自动处理文件备份管理的.txt: line 5:

:command not found 自动处理文件备份管理的.txt: line 11:

v2-使用函数封装-公司自动处理文件备份管理的.txt: line 12: syntax error near unexp'cted token `{

v2-使用函数封装-公司自动处理文件备份管理的.txt: line 12: `function inputSourcePa'h(){

 

[root@xuegod63~]# rpm -ivh /mnt/Packages/dos2unix-3.1-37.el6.x86_64.rpm

warning:/mnt/Packages/dos2unix-3.1-37.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature,key ID c105b9de: NOKEY

Preparing...                ###########################################[100%]

   1:dos2unix              ########################################### [100%]

 

dos2unix v2.sh

 

shift:参数左移指令:

每执行一次,参数序列顺次左移一个位置, $# 的值减1,用于分别处理每个参数,移出去的参数,不再可用。

shift参数左移_第1张图片


实现的思路:

求12+12+1+1

$#(4个参数) > 0

sum=sum+$1

shift

 

(test  int1 -eq int2    =

test   int1 -ne int2    不等于

test  int1 -ge int2    >=

test  int1 -gt int2   >

test  int1 -le  int2  <=

test  int1 -lt  int2  <  )

 

shell 函数使用方法

函数:把一个功能封装起来,使用时直接调用函数名。这样的好处:模块化,代码可读性强。

函数的定义:

语法:

函数名()

{

命令序列

}

 

或:

function函数名()  # function 可以不写

{

命令序列

}

 

注:函数调用时:不带()

 

调用语法

函数名参数1  参数2 ...

 

函数中的变量均为全局变量,没有局部变量

调用函数时,可以传递参数。在函数中用$1 $2 ...来引用传递的参数

 

[root@xuegod63~]#  cat func1.sh

#!/bin/bash

abc=123

echo$abc

example()

{

        abc=456

}

example

echo$abc

 

 

例2

[root@xuegod63~]# cat func2.sh

#!/bin/bash

#定义函数,使用参数

example2()

{

echo$1

echo$2

}

#调用函数,向它传递参数

example2aaa bbb

 

 

案例1: 自动备份Mysql脚本

此脚本运行前环境准备:

实战:

1、 自动备份mysql脚本

       需要做准备:登录到服务器上

                     安装mysql-server

                     开启mysql-server

 

rhel7  安装mariadb-server

          开启mariadb-server

 

rhel6 yum install -y mysql mysql-server

rhel7 yum install -y mariadb mariadb-server

 

service mysqld start

[root@xuegod63 ~]# which mysql

/usr/bin/mysql

[root@xuegod63 ~]# rpm -qf /usr/bin/mysql

mysql-5.1.71-1.el6.x86_64

 

 

安装完后 myql 直接可以登录 也可以

执行[root@xuegod63 ~]#  mysql -uroot -p  连接数据库

 

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| test               |

+--------------------+

3 rows in set (0.00 sec)

 

mysql> eixt

 

 

备份脚本

 [root@xuegod63opt]# tar -zcvf webapp_db.tar.gz *.sql

1.sql

webapp_db.sql

[root@xuegod63 opt]# ls

webapp_db.sql webapp_db.tar.gz

[root@xuegod63 opt]# rm -rf *.sql

[root@xuegod63 opt]# ls

webapp_db.tar.gz

 

[root@xuegod63 opt]# tar -zxvfwebapp_db.tar.gz

webapp_db.sql

[root@xuegod63 opt]# ls

webapp_db.sql webapp_db.tar.gz

 

 

[root@xuegod63 ~]# dos2unix mysql-back-auto.sh

dos2unix: converting file mysql-back-auto.sh to UNIXformat ...

[root@xuegod63 ~]# sh mysql-back-auto.sh         

mysql-back-auto.sh: line 1: #!/bin/sh: No such file or directory

“This 2016-06-02 MySQLBACKUP is SUCCESS”

The mysql backup successfully

 

把脚本复制到/tmp下 用普通用户登录   运行脚本  等待两秒钟 退出。

 

xargs 命令

用途:构造参数列表并运行命令

 

 

 

自动解压ZIP数据包 脚本

如下脚本为自动解压zip包脚本,仅供参考,可以根据实际情况修改,可以举一反三,应用到其他的应用中。