shell脚本的使用---特殊变量及脚本的综合使用

特殊的变量及脚本的综合使用

一、环境变量:

env ##查看所有的环境变量

echo -e "1\n2"  ##换行显示

echo -e "1\t2"  ##在1和2之间加入tab显示

echo -e "\033[44;37;5m ME\033[0m COOL" ##有颜色显示,"\033["是终端转义字符开始

echo -e "$PAHT\n $SHELL\n $HOSTNAME\n $MAIL\n $HISTSIZE\n\t $LANG"

注意:PATH为命令搜索路径,SHELL为当前用户使用的shell,HISTSIZE为历史命令记录条数,LANG当前使用的语言

export ##查看全局环境变量定义情况

export LANG=en_US.UTF-8 ##设置默认语言,如果需要设置为中文将值改成zh_CN.UTF-8

locale  ##查看语言设置

unset HISTSIZE  ##取消环境变量HISTSIZE

PS1="\e[1;31m====>"  ##设置提示符

====>PS1="[\[email protected]\h \W]\$"  ##恢复PS1的变量

vim /etc/DIR_COLORS  ##修改第81,128行的值如下

81   DIR 01;43

128  .xz 01;32

:wq

tar Jcf changecls.xz /etc/hosts ;mkdir dir  ##创建测试文件和目录

ls  #查看创建的文件和目录的颜色

exit ##注销系统,重新登录验证

ls ##颜色已经变了

echo "export TMOUT=300" >>/etc/profile ##设置TMOUT为永久生效的环境变量,注意只有写入了文件的变量才是永久生效的

source /etc/profile

sed -i ‘s/HISTSIZE=100/HISTSIZE=800/g‘ /etc/profile ##设置历史命令条数

grep HIST /etc/profile |grep ^HI ##验证

source /etc/profile

echo $HISTSIZE

总结:环境变量是为用户设置的工作环境参数的变量,修改时先测试,再写入文件

二:位置变量和预定义变量

vi position.sh  ##编写并理解位置变量和与定义变量

#!/bin/bash

echo "This is \$0:$0"

echo "This is \$1:$1"

echo "This is \$2:$2"

echo "This is \$3:$3"

echo "This is \$4:$4"

echo "This is \$5:$5"

echo "This is \$6:$6"

echo "This is \$7:$7"

echo "This is \$8:$8"

echo "This is \$9:$9"

echo "This is \$#:$#"

echo "This is \$*:$*"

echo "This is \$?:$?"

echo "$0 is exec complete! "

:wq

chmod +x position.sh

/root/bin/position.sh a b c d e f g h x y z

vim bak.sh

#!/bin/bash

TF="/data/benfen-$(date +%F).tar.gz"

tar zcf $TF $* 1>/dev/null

echo "\$0:exec $0 script."

echo "\$#:total bakup $#."

echo "\$*:bakup $*"

echo "30 12 * * 7 /root/bin/bak.sh $*" >>/var/spool/cron/root

:wq

chmod +x bak.sh

/root/bin/bak.sh /etc/yum.repos.d/ /etc/sysconfig /etc/hosts  ##备份并观察$0,$#的作用

编写mysql备份脚本

1、准备数据库:

vim sql.sh  ##在mysql(192.168.100.150)服务器上编写该脚本

#!/bin/bash

## by linuxfan.cn 2016.1.1

mysql -uroot -p123123 <<END

create database studydb;

create database coursedb;

grant select,lock tables on studydb.* to [email protected]‘192.168.100.151‘ identified

by ‘123123‘;

grant select,lock tables on coursedb.* to [email protected]‘192.168.100.151‘ identified

by ‘123123‘

show grants for [email protected]‘192.168.100.151‘;

END

:wq

请完成下列操作后再执行脚本

netstat -utpln |grep 3306

mysql -uroot -p123123

chmod +x sql.sh

在上述脚本中使用变量,将可能随着主机的ip,数据库名称,密码,用户名设置为变量后并替换掉相应的位置

2、编写备份数据的脚本

在192.168.100.151的服务器上完成:

vim dbbak.sh

#!/bin/bash

## by linuxfan.cn

## 2016.1.1

mkdir /opt/dbbak/

/usr/bin/mysqldump -uoperator -p123123 -h 192.168.100.150 --databases coursedb

>/opt/dbbak/coursedb-$(date +%F-%H:%M).sql >/dev/null

/usr/bin/mysqldump -uoperator -p123123 -h 192.168.100.150 --databases studydb

>/opt/dbbak/studydb-$(date +%F-%H:%M).sql >/dev/null

/bin/tar Jcf /opt/dbbak/coursedb-$(date +%F-%H:%M).tar.xz

/opt/dbbak/coursedb-$(date +%F-%H:%M).sql --remove &>/dev/null

/bin/tar Jcf /opt/dbbak/studydb-$(date +%F-%H:%M).tar.xz

/opt/dbbak/studydb-$(date +%F-%H:%M).sql --remove &>/dev/null

:wq

请完成下列操作后再执行脚本

mount /dev/cdrom /mnt

yum -y install mysql  ##安装mysql客户端

mysql -uoperator -p123123 -h 192.168.100.150  ##登录测试

mysqldump -uoperator -p123123 -h 192.168.100.150 --databases studydb

>test.sql;ls  ##查看是否能成功备份

在上述脚本中使用变量,将用户,数据库名称,密码,主机ip,时间,备份后的sql文件名称,压缩文件的名称定义成变量,并替换相应的位置。

chmod +x dbbak.sh

脚本测试:

sh -x dbbak.sh

ls /opt/dbbak/  ##查看是否只有xz后缀的文件

测试成功后添加计划任务:

echo "30 2 * * * /root/bin/dsbak.sh" >>/var/spool/cron/root  ##每天的两点半开始备份

时间: 2024-11-05 16:01:47

shell脚本的使用---特殊变量及脚本的综合使用的相关文章

shell脚本中特定符合变量的含义

shell脚本中特定符合变量的含义: $#   传递到脚本的参数个数 $*    以一个单字符串显示所有向脚本传递的参数.与位置变量不同,此选项参数可超过9个 $$    脚本运行的当前进程PID号 $!     后台运行的最后一个进程的进程号 [email protected]   与$*相同,但是使用时用双引号,并将各个参数加双引号返回 $-     显示shell使用的当前选项,与set命令功能相同 $_    上一个命令的最后一个参数 $?     显示最后命令的退出状态,0表示执行成功

shell脚本解析3-----局部变量与函数

#!/bin/bash hello="var1" echo $hello function func1                             #定义函数func1 { local hello="var2"                    #定义内部变量hello echo $hello } func1                                          #进行函数调用 echo $hello 执行结果: 总结:局

学习Shell脚本编程(第4期)_在Shell程序中的使用变量

变量的赋值 变量的访问 变量的输入 4.1 变量的赋值     在Shell编程中,所有的变量名都由字符串组成,并且不需要对变量进行声明.要赋值给一个变量,其格式如下: 变量名=值  注意: 等号(=)前后没有空格 例如: x=6 a="How are you " 表示把6赋值给变量x,字符串"How are you "赋值给变量a. 4.2 访问变量值 如果要访问变量值,可以在变量前面加一个美元符号"$",例如: [[email protect

linux——Shell 脚本基础篇(变量类型,变量操作,定义,运算与逻辑关系)

Shell 脚本基础 1.变量 什么是变量 #a=1 # echo $a 1 变量:可以变化的量 1.2变量名称注意事项 变量名不能以数字开头 不能与系统中已有的环境变量重名,尽量不要全部使用大写,尽量不要使用"_"下划线开头 最好做到见名知意 不能使用程序中的保留字,列如if,for等 1.3变量类型 字符型 数值型 整型浮点型 布尔型 条件是和否 #$echo $a 引用 abc 撤销 unset +(变量名)a 1.4变量操作 * 设置变量 * 引用变量 * 撤销变量 单引号和双

基本shell脚本的边界及变量

 shell脚本与变量  shell脚本的用途: 自动化常用命令 执行系统管理和故障排除 创建简单的应用程序 处理文本或文件  shell脚本编写格式: 第一行:shebang机制 用#加shell类型开头 后续可直接跟命令,用命令达到需要的效果即可 如需内容注释行首加#即可 例如: #/bin/bash #testcat /etc/passwd  shell脚本执行方法: bash /绝对路径 加入$PATH变量,给脚本文件添加执行权限,然后直接输入脚本文件名即可运行 cat /脚本路径 |

shell编程概念介绍及变量定义--关于脚本运行与shell进程之间的关系

shell是用户与内核进行交互操作的一种接口,目前最流行的shell称为bash shell shell也是一门编程语言<解释型的编程语言>,即shell脚本<就是用 linux 的 shell 命令编程> 一个系统可以存在多个shell,可以通过 cat/etc/shells 命令查看系统中安装的shell,不同的shell 可能支持的命令语法是不相同的 基本格式 代码写在普通文本文件中,通常以 .sh为后缀名 例vi hello.sh: #!/bin/bash      ##表

Shell 脚本之编程和变量(外加实战项目)

本章目的:学会编程规范,变量的相关脚本操作和知识 一.Shell 脚本的概述 二.Shell的作用 三.写第一个Shell脚本 1.写一个脚本(到BOOT目录,查看当前位置,以长格式友好显示VML开头的所有文件) [[email protected] ~]# vim aaa.sh "随意编一个空文件以.sh为结尾" /bin/bash "开头声明,固定格式" 一个脚本 "描述性信息可加可不加" cd /boot/ pwd ls -lh vml*

Shell脚本编程规范与变量

主要内容 Shell脚本编程规范 Shell脚本应用场景 Shell编程规范 管道与重定向 Shell脚本变量 自定义变量 特殊变量 Shell脚本概述 Shell脚本的概念 将要执行的命令按顺序保存到一个文本文件 给该文件可执行权限,便可运行 可结合各种Shell控制语句以完成更复杂的操作 Shell脚本应用场景 重复性操作 批量事务处理 自动化运维 服务运行状态监控 定时任务执行 编写第一个Shell脚本 1.编写脚本代码 使用vim文本编辑器,每行一条Linux命令, 按执行顺序依次编写:

变量的声明及其作用域、脚本、修改环境变量$PATH【:VALUE】

变量的声明及其作用域 本地变量 VARNAME=VALUE:作用域为整个bash进程[打开新的shell进程,没有该变量] [root@jiakang a]# A=123 [root@jiakang a]# bash [root@jiakang a]# echo $A [root@jiakang a]# 局部变量 local VARNAME=VALUE:作用域为当前代码段 环境变量 作用域为当前shell及其子进程[打开一个shell就是一个进程] export VARNAME=VALUE或者