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中才能配置永久变量

原文地址:http://blog.51cto.com/13520758/2059964

时间: 2024-10-10 05:15:13

Shell脚本入门基础的相关文章

Linux shell脚本编程基础之练习篇

shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash if [ $# -ne 1 ] then echo "请输入一个参数" exit else echo "参数正确" newfile=$1 fi #echo `grep "^#\!" ${newfile}` if ! grep "^#\!" ${newfile} &>/

Shell 脚本入门--下

Shell 脚本入门--下 本为大家介绍,本篇介绍内容有:逻辑运算符(& .| .!.^).测试命令.脚本的执行过程 1.逻辑运算符 (1)&与和&&短路与 True .false 1       0 与: 1 & 1 = 1 1 & 0 = 0 0 & 1 = 0 0 & 0 = 0 对于&来说,如果左侧条件为false,也会计算右侧条件的值.特点只要有一个false就认为是false 短路与: false && =

shell脚本的基础

shell脚本的基础 shell 基本语法 变量 什么是shell? 先看一个简单的shell程序 [[email protected]~]# cat linux.sh      #查看linux.sh文件内容#!/bin/bash echo -e "\e[1;31m linuxtouch  \e[0m"   #红色字体输出 linuxtouch[[email protected] ~]# sh linux.sh  linuxtouch  [[email protected] ~]#

Linux Shell脚本入门--cut命令

Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [[email protected] ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符 [[email protected] ~]# cut -c 字符区间 <==用于排列整齐的信息 选项与参数: -d :后面接分隔字符.与 -f 一起使用: -f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思: -c :以字符 (

Shell 脚本入门--上

大家好!今天分享的是一些shell脚本的基础知识,分篇为大家介绍,本篇介绍内容有:变量(分类.赋值.查询.引用).算数运算的实现. shell脚本简介 计算机高级语言分为两种类型,一种是面向对象型(如java.c#).一种是面向过程型(如shell.python).性质上的区别在于面向对象型试用于大型复杂的环境,可以更加精确细致的提供服务,缺点就是语法结构繁琐且严谨.而面向过程的语言,简单便捷好上手,但是不适用于复杂的环境.打个比方:现在有个大型的机械项目,一位经验丰富的老设计师,带着几位年轻的

Shell脚本入门之一——HelloWorld

备注:本人使用cent-os 64位虚拟机,学习中主要阅读<鸟哥的私房菜>,自己对相关内容根据自己的理解进行重新整理. Shell Script简介 ?Shell Script:Shell脚本,使用文本文件,包含Shell语法和指令,包含一系列Linux指令,方便我们批量执行命令,更好的管理Linux主机. ?Shell指与Linux内核通信所使用的特定命令行用户界面,目前有多个不同的Shell,包括: C Shell,Korn Shell等. ?Shell Script的第一行制定了使用的S

shell脚本的基础1

shell脚本的基础 1.shell 脚本的编写规范 2 变量与特殊变量应用 3局部变量与全局变量 4 测试判断表达式 在一些复杂的Linux维护工作中,大量重复的输入和交互操作不但费时费力,而且容易出错. 编写脚本的好处: 批量的处理,自动化的完成维护,减轻管理员的负担. linux的shell脚本是一种特殊的应用程序,常见的shell解释器有很多种使用不同的shell时期内部指令命令提示方式方面会存在一些区别,可以通过/etc/shells文件查看 [[email protected] ~]

第九章、shell脚本编程基础

第九章.shell脚本编程基础 本章内容 编程基础 脚本基本格式 变量 运算 条件测试 配置用户环境 编程基础 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令 编程语言: 低级:汇编 高级: 编译:高级语言-->编译器-->目标代码 java,C# 解释:高级语言-->解释器-->机器代码 shell, perl, python (系统后台

文本处理工具和正则表达式、shell脚本编程基础-第四周

第四周-文本处理工具和正则表达式.shell脚本编程基础1. 统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户的个数,并将用户都显示出来grep -v '/sbin/nologin' /etc/passwd|wc -lgrep -v '/sbin/nologin' /etc/passwd|cut -d: -f12. 查出用户UID最大值的用户名,UID及shell类型.cut -d: -f1,3,7 /etc/passwd|sort -t: -k2 -nr