[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,用于分别处理每个参数,移出去的参数,不再可用。
实现的思路:
求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包脚本,仅供参考,可以根据实际情况修改,可以举一反三,应用到其他的应用中。