Shell脚本入门基础
Shell脚本
DKing~共享
1.1 脚本概念
将多个命令先放入到一个文件中,方便一次性执行的一个程序文件
统一脚本存放目录:/server/scripts
推荐使用vim编辑脚本
查看脚本执行过程 :sh -x 脚本
1.2 脚本编辑格式:
#!/bin/bash
#author:dqf
#date:2018/1/11
#ver:1.0
#desc:backup /etc to /backup
脚本编辑示例:
#!/bin/bash
#author:dqf
#date:2018/1/11
#ver:1.0
#desc:backup /etc to /backup
cd /
tar zchf /backup/etc-`date +%F-%a-%T`.tar.gz etc/
find /backup/ -type f -mtime +7 ! -name "etc-*-Mon.tar.gz" | xargs mv -t
/tmp
1.3 变量概念
系统中存在的可以随时变化对操作环境有影响的变化的文件
1. 变量分类:
全局变量,又称环境变量,全局都可使用
局部变量,又称普通变量,当前环境使用
2. 赋予变量:
DQF=123(普通变量)
export DQF=123(环境变量)
永久生效:放入/etc/profile中
source dqf.sh 执行脚本也可以生效
3. 显示变量:
# echo $DQF
123
# echo ${DQF}
123
$DQF==${DQF}
4. 与变量有关的文件
~/.bash_profile ~/.bashrc /etc/profile /etc/bashrc
5. 与变量有关的目录:/etc/profile.d/
实例1-1 将cowsay.sh放入到/profile.d/目录下
# /usr/bin/cowsay Hello,World! 写入脚本放入/etc/profile.d/目录
______________
< Hello,World! >
--------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
# chmod +x /etc/profile.d/cowsay.sh 赋予执行权限后,开机才能自运行
1.4 $的作用
$ 0 表示脚本的名字
$ 1 表示第一个参数
$ 2 表示第二个参数
$ n 表示第n个参数
$ # 表示脚本的个数
$ ? 表示上一个命令的返回值,判断上一个命令是否执行正确
1.5 [ ]的作用(条件表达式)
[ -d /root ]用于判断根下是否存在目录/root d表示directory
[ -f /root/oldboy.txt ]用于判断/root下是否存在oldboy.txt文件 f表示file
$ ? 表示上一个命令的返回值,判断上一个命令是否执行正确
0 表示正确 非0表示不正确,命令执行有问题
实例1-2 判断系统中 是否存在 /oldboy/oldboydir目录 如果存在提示 dir exist
# [ -d /data ]
# echo $?
0
# [ -d /oldboy/oldboydir ] && echo "dir exist"
dir exist
# [ -f /tmp/ufo.txt ] || touch /tmp/ufo.txt
1.6 比较大小
[ a -eq b ] equal == 表示a=b
[ a -ne b ] not equal != 表示a≠b
[ a -gt b ] great than > 表示a>b
[ a -ge b ] great equal >= 表示a≥b
[ a -lt b ] less than < 表示a<b
[ a -le b ] less equal <= 表示a≤b
1.7 if语句
if语句格式-1:
if [ 设定条件 ];then
执行命令
fi(结束标志)
if语句格式-2:
if [ 设定条件 ];then
执行命令
else
执行其他
fi(结束标志)
1.8 for循环
for循环格式:
for name in 条件命令
do
执行命令
done
1.9 脚本案例演示
1.9.1 利用awk制作简单运算器
利用read/awk/if语句编剧脚本
vim /server/scripts/bc.sh
read -t5 -p "input a b:" a b
if [ $b -eq 0 ];then
echo "b is not allow 0"
exit
fi
awk -va=$a -vb=$b 'BEGIN{print a+b,a-b,a*b,a/b}'
利用$n/awk/if语句编辑脚本
vim /server/scripts/bc.sh
if [ $# -ne 2 ];then
echo "Usages:you can only write two words"
exit
fi
awk -va=$1 -vb=$2 'BEGIN{print a+b"\n"a-b"\n"a*b"\n"a/b}'
1.9.2 利用for语句关闭无用服务
vim /server/scripts/chk.sh
off=`chkconfig |awk '!/crond|network|sshd|rsyslog|sysstat/{print $1}'`
for dqf in $off
do
chkconfig $dqf off
done
1.9.3 变量赋值方法
方法1-赋值普通变量——重启失效 普通变量不能在脚本中运行
# a=x
# echo $a env 查看系统变量
x
方法2-export赋值环境变量——重启失效 环境变量可以在脚本中运行
# export a=x
# echo $a
x
方法3-read 交互式赋值变量——重启失效
# read -t5 -p "input a b:" a b -t5 表示5秒后自动退出
input a b:2 3 -p 表示在屏幕上打印问答内容
# echo $a $b -s 表示隐藏输入过程
2 3 写入/etc/profile中才能配置永久变量
转载于:https://blog.51cto.com/13520758/2059964
Shell脚本入门基础相关推荐
- Linux Shell脚本入门教程系列之(十四) Shell Select教程
本文是Linux Shell脚本系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句 ...
- 详细介绍Linux shell脚本系列基础学习(列表)
本系列适合Linux初学者,属于Linux入门级教程,主要介绍了Shell的分类.语法格式以及脚本的使用和编写格式等. 不断更新中,是Shell学习的必读经典教程.现主要包含以下文章: Linux S ...
- shell脚本的基础知识
shell脚本的基础知识 1 什么是shell 2 shell脚本的意义 3 如何创建shell脚本 4 如何执行shell脚本 5如何对脚本脚本进行调试 6 脚本练习 1 什么是shell shel ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- Linux之Shell脚本入门
一.Shell概述 Shell是一个命令行解释器,它接受应用程序/用户命令,然后调用操作系统内核. Shell还是一个功能强大的编程语言,易编写.易调试.灵活性强. 二.Shell脚本入门 1.脚本格 ...
- shell脚本由基础变量及特殊变量($@、$*、$#等)到实战。
shell脚本由基础变量及特殊变量($@.$*.$#等)到实战. 一.shell脚本建立: shell脚本通常是在编辑器(如vi/vim)中编写,也可以在命令行中直接执行: 1.脚本开头: 规 ...
- linux基础—课堂随笔_03 SHELL脚本编程基础
shell脚本编程基础 条件选择:if语句 选择执行: 注意:if语句可嵌套 单分支 if(开头)判断条件:then 条件为真的分支代码 fi(结尾) 双分支 if(开头)判断条件:then 条件为 ...
- Linux Shell脚本入门教程系列之(十六) Shell输入输出重定向
本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...
- Linux Shell脚本入门教程系列之(十五) Shell函数简介
本文是Linux Shell脚本系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 上一篇之后,函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰 ...
最新文章
- Linux程序映像的布局
- SAP MM/FI 自动过账实现 OBYC 接口执行
- EBB-4、忘记root密码;文件,目录权限
- 区块链技术的发展现状_区块链的现状及其发展趋势
- 平民价国产Android,1600左右的Broncho A1真机配置
- arcgis运行慢_ArcGIS Pro运行较慢的诊断方法
- Java安装环境变量配置-day1
- xy苹果助手未受信任_【iOS教程】不用电脑 安装苹果软件
- 计算机网络简历自我认识,计算机网络专业简历的自我评价
- 利用倾斜摄影技术土方工程计算
- CRAFTS:端对端的场景文本检测器
- UI设计:使用AI绘制微质感图标
- win10怎么把锁屏界面变成壁纸
- @开发者,微软 CEO 萨提亚带领 60 位大咖的集结令,你敢接吗?
- 【matplotlib】绘制简单二维、三维图像
- ofdm 迭代限幅 matlab,ofdm限幅法matlab的程序
- 四个小诀窍 告诉你雪景怎么拍才能更好看
- Github | 如何在Github上只下载一个文件或文件夹!?
- 迈普2800路由器设置trunk
- win7升级正版win10方法(精华篇)!
热门文章
- Angular中使用axios实现get请求数据
- 史上最全Winform中使用ZedGraph教程与资源汇总整理(附资源下载)
- DataTbles中设置所有列不进行排序使用ording等不管用的解决方案
- 怎样在vue单页面中引入其他组件
- Elasticsearch 入门教程
- 河南acret计算机报名,Acret, Ex Parte U.S. Supreme Court Transcript of Record with Supporting Pleadings...
- php+mssql 分页,一个PHP+MSSQL分页的例子
- 三大数据驱动机制,助力文娱企业打造高留存、高转化增长闭环
- 我为什么突然想转管理?
- Citrix XenServer XenCenter 警报