shell脚本自理版

Shell学习笔记

说明:该文档是我自己在学习过程中记录的一些笔记,仅梳理了经常用到的一些概念和语法规则,适用于有些基础的读者阅读。(也可以在“我的资源”里下载电子版PDF)

shell的三种变量:

变量操作:

 Shell系统变量,主要是用于对参数判断和命令返回值判断时使用,系统变量详解如下:

$0                 当前脚本的名称;

$n                 当前脚本的第n个参数,n=1,2,…9;

$*                 当前脚本的所有参数(不包括程序本身);

$#                 当前脚本的参数个数(不包括程序本身);

$?                 命令或程序执行完后的状态,返回0表示执行成功;

$$                 程序本身的PID号。

Shell环境变量,主要是在程序运行时需要设置,环境变量详解如下:

PATH                  命令所示路径,以冒号为分割;

HOME                  打印用户家目录;

SHELL                 显示当前Shell类型;

USER                  打印当前用户名;

ID                    打印当前用户id信息;

PWD                   显示当前所在路径;

TERM                  打印当前终端类型;

HOSTNAME              显示当前主机名;

PS1                   定义主机命令提示符的;

HISTSIZE              历史命令大小,可通过 HISTTIMEFORMAT 变量设置命令执行时间;

RANDOM                随机生成一个 0 至 32767 的整数;

HOSTNAME              主机名

env                   查看环境变量

read                  从键盘获取值read(在一行上显示和添加提示 需要加上-p)

 If条件判断语句:通常以if开头,fi结尾。也可加入else或者elif进行多条件的判断

# 单分支语句:if-fi :就类似于c中的if条件判断,如下:

# 双分支if 语句:if-else-fi :若condition成立则执行command1,否则执行command2。

#多支条件语句:if else-if else :若condition1成立,执行command1,若condition1不成立,condition2成立,执行command2,若两condition都不成立就执行command3.

常用逻辑判断运算符:

-f                 判断文件是否存在 eg: if [ -f filename ];

-d                 判断目录是否存在 eg: if [ -d dir     ];

-eq                等于,应用于整型比较 equal;

-ne                不等于,应用于整型比较 not equal;

-lt                小于,应用于整型比较 letter;

-gt                大于,应用于整型比较 greater;

-le                小于或等于,应用于整型比较;

-ge                大于或等于,应用于整型比较;

-a                 双方都成立(and) 逻辑表达式 –a 逻辑表达式;
 
-o                 单方成立(or) 逻辑表达式 –o 逻辑表达式;

-z                 空字符串;

-x                 是否具有可执行权限

||                 单方成立;

&&                 双方都成立表达式。

例:判断某个服务是否在运行:

#!/bin/bash

# 定义一个变量名

name=crond

num=$(ps -ef|grep $name|grep -vc grep)

if [ $num -eq 1 ];then

    echo "$num running!"

else

    echo "$num is not running!"

fi

例:判断目录是否存在:

#!/bin/bash

# this is check directory

 if  [  !  -d  /data/rivers  -a  !  -d  /tmp/rivers  ];then

 mkdir  -p  /data/rivers 

fi

for循环语句:

#格式:for name [ [ in [ word ... ] ] ; ] do list ; done

  for 变量名 in 取值列表; do

    语句 1

  done

while循环语句:当condition 成立的时候进入 while 循环,直到 condition 不成立时才退出循环。

While循环语句与for循环功能类似,主要用于对某个数据域进行循环读取、对文件进行遍历,通常用于需要循

环某个文件或者列表,满足循环条件会一直循环,不满足则退出循环,其语法格式以while…do开头,done结尾与

#while 关联的还有一个 until 语句,它与 while 不同之处在于,是当条件表达式为 false 时才循环,实际使用中比。

while  (条件表达式)

do

  程序段

done

break continue 语句:

  break 是终止循环。

  continue 是跳出当前循环。

#示例 1:在死循环中,满足条件终止循环

while true; do

  let N++

  if [ $N -eq 5 ]; then

    break

fi

  echo $N

done

输出: 1 2 3 4



#示例 2:举例子说明 continue 用法

N=0

while [ $N -lt 5 ]; do

  let N++

if [ $N -eq 3 ]; then

  continue

fi

  echo $N

done



输出: 1 2 4



# 打印 1-100 数字

i=0

while ((i<=100))

do

        echo  $i

        i=`expr $i + 1`

done

函数:

# Shell允许将一组命令集或语句形成一个可用块,这些块称为Shell函数,Shell函数的用于在于只需定义一次,后

期随时使用即可,无需在Shell脚本中添加重复的语句块,其语法格式以function name(){开头,以}结尾。

# Shell编程函数默认不能将参数传入()内部,Shell函数参数传递在调用函数名称传递,例如name args1 args2。

# 函数语法

func() {

command1

command1

……

}

fun  # 直接调用函数名

# Shell 函数很简单,函数名后跟双括号,再跟双大括号。通过函数名直接调用,不加小括号。

#!/bin/bash

func() {

VAR=$((1+1))

return $VAR

echo "This is a function."

}

func

echo $?

# bash test.sh

2

创建apache软件安装函数:

source命令用法:source是使文件生效

source FileName

作用:在当前bash环境下读取并执行FileName中的命令。

注:该命令通常用命令“.”来替代。

如:source .bash_rc 与 . .bash_rc 是等效的。

注意:source命令与shell scripts的区别是,

source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用

source 命令。

字符串变量:

算数运算符:

关系运算符:关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

布尔运算符:

逻辑运算符:

字符串运算符:

文件测试运算符:主要用于检测unix文件的各种属性

运算指令:

数组:

shell函数:所有函数在使用前必须定义,必须将函数放在脚本开始部分,直至shel解释器首次发现它时,才可以使用。

当函数没有return时,默认返回最后一个命令的运行结果作为返回值。

定义函数的两种格式:

格式一:

函数名(){

命令 …

}

格式二:

函数名(){

命令 …

}

/dev/null文件:

printf输出:printf 不会像 echo 自动添加换行符,我们可以手动添加\n,无大括号,直接以空格分隔

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 《shell脚本实战》是一本介绍如何使用Shell编写脚本的电子书籍。Shell脚本是一种用于自动化任务和批处理的脚本语言,广泛应用于Unix、Linux和类Unix系统中。 这本电子书逐步引导读者从基础知识开始,包括Shell脚本的语法、变量、运算符、条件判断等。然后通过实例演示了如何编写各种常见的Shell脚本,例如文件操作、字符串操作、数学计算、循环、条件语句等。 《shell脚本实战》中还介绍了如何编写高级Shell脚本,例如函数、数组、正则表达式等。同时,它还展示了如何与系统命令、文件、网络、数据库等进行交互,从而帮助读者更好地掌握Shell脚本的灵活应用。 该电子书的实战部分还包括了一些实际场景下的应用示例,如日志分析、备份脚本、系统监控等。通过这些示例,读者可以学到如何解决实际问题,并将Shell脚本运用于自己的工作中。 总而言之,《shell脚本实战》是一本适合初学者和有一定基础的读者的实用电子书。通过学习本书,读者可以系统地了解Shell脚本的编写方法和应用技巧,提高工作效率,实现自动化任务,为日常工作带来便利。 ### 回答2: 《Shell脚本实战》,是一本针对Shell脚本编程的实战性电子书。本书主要面向对Shell脚本编程有一定基础的读者,旨在通过实际案例的讲解和实战练习的方式,帮助读者提升自己在Shell脚本编程方面的技能。 本书分为七个章节,分别介绍了Shell脚本编程的基础知识、字符串处理、文件操作、流程控制、函数、正则表达式以及常用工具等内容。每个章节都以案例为例,通过实际场景的描述和具体的代码示例,向读者展示了如何使用Shell脚本来解决实际问题。 书中的案例涵盖了各个领域,包括系统管理、日志分析、文本处理、数据清洗等等,读者可以通过学习这些案例来深入理解Shell脚本的应用场景和技巧。此外,书中还提供了练习题和实战项目,读者可以通过完成这些练习和项目来巩固和应用所学知识。 总的来说,《Shell脚本实战》是一本实用性很强的电子书,适合那些希望通过实践来提升Shell脚本编程能力的读者。无论是作为初学者的入门教材,还是作为有经验的开发人员的参考书,都具有一定的价值。读者可以通过阅读这本书,掌握Shell脚本编程的基础知识和技巧,提高自己的工作效率和编程水平。 ### 回答3: Shell脚本实战电子是一本关于Shell脚本编程的实用指南。它适合编程新手和有一定编程基础的人士学习和使用。 本书首先介绍了Shell脚本的基础知识,包括Shell环境、Shell脚本的基本语法和变量、运算符、流程控制等内容。然后,书中以实际案例为例,详细介绍了如何使用Shell脚本解决各种问题。 在本书中,读者将学习如何创建和运行Shell脚本、使用Shell脚本进行文件和目录操作、处理文本文件和日志文件、在Shell脚本中使用正则表达式和通配符等技巧。此外,本书还介绍了如何使用Shell脚本编写简单的网络脚本、检测系统性能和使用Shell脚本进行系统管理等内容。 Shell脚本实战电子内容丰富,实用性强。通过学习本书,读者可以有效地利用Shell脚本提高工作效率,解决实际问题。无论是在Linux、Unix还是Mac系统中,Shell脚本都是一种非常强大和灵活的工具,可以节省时间和精力。 总之,Shell脚本实战电子是一本非常实用的书籍,对于希望学习和使用Shell脚本的读者来说,它是不可多得的参考资料。无论是初学者还是有一定经验的程序员,都可以从中获得实用的技巧和知识,提升自己的编程能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值