Shell脚本编程--Day3

这篇具有很好参考价值的文章主要介绍了Shell脚本编程--Day3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Shell内置和外置命令

内置和外置命令的区别:

可以通过type命令去检测
内置命令 : 在系统启动的时候加载入内存,常驻内内存,执行效率高,但是占用资源。会在当前shell进程去执行,是shell的一部分。
外置命令 : 用户需要从硬盘读取程序文件,再读入内存加载, 又叫自己单独下载的文件系统命令。 会开启子shell进程去执行。

查看Linux的内置shell命令: compgen -b

Linux特殊符号

${}       # 拿出变量的值
$()       # 拿出命令的执行结果
``        # 拿出命令的执行结果
()        # 开启子shell去执行里面的内容
&vars     #  取出变量的值

Shell数值运算

1双小括号:

# # 0为假, 非0为真。 获取值 必须加上 $
[chen@iZ0jl780lb0oio7v4b0chbZ ~]$ echo $((8 > 7))
1   
[chen@iZ0jl780lb0oio7v4b0chbZ ~]$ echo $((10 + 2))
12
#! /bin/bash

print_usage()
{
   printf "输入有误,请输入一个整形"
   exit 1
}


# print_usage 调用函数的意思, 不用加 括号

# read == cin  -p 表示提示信息
read -p "请输入一个整形: " firstnum


# -n表示对字符串判断, 为空则为false, 不为空为true
# 必须输入纯数字,如果输入的不是纯数字,条件满足
if [  -n "`echo $fiirstnum | sed 's/[0-9]//g'`"  ]
	then
		print_usage
fi #if的闭合标签


# 输入运算符
read -p "请输入运算符: " operator

# 运算符仅限于 + - * /

if [ "${operator}" != "+" ] && [ "${operator}" != "-" ] &&[ "${operator}" != "*" ] && [ "${operator}" != "/" ] 
	then
		printf "请输入合法的运算符\n"
fi


read -p "请输入第二个变量: " secondnum

if [ -n "`echo $secondnum | sed 's/[0-9]//g'`" ]
     then
         print_usage
fi #if的闭合标签

花式玩法:

[chen@iZ0jl780lb0oio7v4b0chbZ day2]$ cat test1.sh
#! /bin/bash

echo $(("$1"))

let命令 类似于双小括号命令

检测服务状态的简易脚本

CheckUrl()
{
     timeout=5   # 超时时间是5秒
	 fails=0     # 相当于是记录失败的次数
	 success=9   # 成功的次数

	 while true
        do 
			wget --timeout=${timeout} --tries=1 https://www.baidu.com/ -q -o /dev/null
		  # echo $? 返回上一条执行语句的状态码 --正常为0
          if [ $? -ne 0  ]
			then
				let fails=fails+1 # 失败次数+1
		  else
			   let success+=1
	      fi

          # 判断成功次数
          if [ $success -ge 1 ]
			then
			   echo "该网站正常执行"
	           exit 0
		  fi
	      
		  #判断失败次数
		  if [ ${fails} -ge 2]
		   then
		      echo "该网站挂了,访问失败"
			  exit -1
		  fi

	 done
}

expr命令

expr 命令只通过传入参数的方式, 也就是加入空格

# expr要加入转义字符,防止被错误识别
[chen@iZ0jl780lb0oio7v4b0chbZ day2]$ expr 5 \+ 3
8
[chen@iZ0jl780lb0oio7v4b0chbZ day2]$ expr 8 \> 7
1
[chen@iZ0jl780lb0oio7v4b0chbZ day2]$ expr length "123456789"
9

expr命令也支持模式匹配功能
2个特殊符号
: 冒号, 计算字符串的字符数量,
.* 任意的字符串重复0次或者多次

expr 字符串 ”:“  ".*"

expr判断文件后缀是否合法
执行脚本, 传入一个文件名,判断改文件的后缀是否为.jpg

[chen@iZ0jl780lb0oio7v4b0chbZ day3]$ cat test1.sh 
#! /bin/bash

if expr "$1" ":" ".*\.jpg" > /dev/null
	then
		echo "是jpg文件"
else
	echo "这不是jpg文件"
fi
[chen@iZ0jl780lb0oio7v4b0chbZ day3]$ bash test1.sh xxx.jpg
是jpg文件
[chen@iZ0jl780lb0oio7v4b0chbZ day3]$ bash test1.sh xxx.123jp
这不是jpg文件

找出长度不大于3的单词 :文章来源地址https://www.toymoban.com/news/detail-468069.html

[chen@iZ0jl780lb0oio7v4b0chbZ day3]$ cat test2.sh
#! /bin/bash

for str in I am good student, and I love you
	do
		 if [ `expr length $str` -le 3 ]	
			then
			echo $str
		 fi
	done
[chen@iZ0jl780lb0oio7v4b0chbZ day3]$ bash test2.sh 
I
am
and
I
you

计算1—1000的和

[chen@iZ0jl780lb0oio7v4b0chbZ day3]$ cat test3.sh
#! /bin/bash


# 方法1
echo $((`seq -s "+" 1000`))

# 方法2
echo {1..1000} | tr " " "+" | bc  #tr命令是将+号替换空格 ,并交给bc命令执行

# 方法3
seq -s " + " 1000 | xargs expr  # xargs构造参数传递给expr命令,以空格分割

到了这里,关于Shell脚本编程--Day3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Shell脚本编程进阶

    Shell脚本编程进阶 定义 for循环中LIST列表的生成方式 (1) 直接给出列表 (2) 整数列表: (3) 使用可以返回列表的命令 (4) 使用glob,如:*.sh (5) 变量引用 for特殊格式定义及使用 while循环定义 continue [N]:提前结束第N层的 本轮循环 ,而直接进入下一轮判断;最内层为第1层 break [N]:提

    2024年02月14日
    浏览(44)
  • Linux 系统shell脚本编程笔记——脚本入门

    目录 1、创建shell脚本文件  2、显示消息 3、 环境变量 4、用户变量 5、命令替换 ​编辑  6、重定向输入与输出 6.1、输出重定向  6.2、输入重定向 ​编辑 7、执行数学运算 7.1、expr命令 7.2、bc的基本用法  8、退出脚本 完整笔记请前往此处获取:https://download.csdn.net/download/qq

    2024年02月06日
    浏览(69)
  • 【shell脚本编程大全-笔录01】

    全局、局部环境变量 ​ 用户变量(局部变量):修改的设置只对某个用户的路径或执行起作用; ​ 系统变量(全局变量):影响范围是整个系统 ; 系统环境变量基本上都是使用全大写字母,以区别于普通用户的环境变量。 查看 env、printenv和set之间的差异: 1、set命令会显

    2024年02月16日
    浏览(41)
  • 【shell脚本编程大全-笔录02】

    传送门:【shell脚本编程大全-笔录01】 ​ 使用正则表达式最大的问题在于有不止一种类型的正则表达式。Linux中的不同应用程序可能会用不同类型的正则表达式。 ​ 正则表达式是通过正则表达式引擎实现的。正则表达式引擎是一套底层软件,负责解释正则表达式模式并使用

    2024年02月15日
    浏览(38)
  • Linux——Shell脚本编程(1)

    1)Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。 2)对于 JavaEE 和 Python 程序员来说,工作的需要,要求你编写一些 Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。 3) 对于大数据程序员来说,需要编写Shell程序来管

    2024年02月09日
    浏览(60)
  • Linux实验4 shell脚本编程基础

    1.假设在/tmp下有以当前用户的帐号命名的目录,请在命令行中临时修改环境变量PATH的值,要求该目录的路径附加到该变量的最后。 2.请在命令行中临时设置命令输入提示行格式为:“当前系统时间-用户#”。 3.在命令行定义一个字符串变量str,并且赋值为“test for shell”,然

    2024年04月17日
    浏览(52)
  • Linux_5_Shell脚本编程

    程序:算法+数据结构 数据:是程序的核心 算法:处理数据的方式 数据结构: 数据在计算机中的类型和组织方式 面向过程语言 做一件事情,排出个步骤,第一步干什么,第二步干什么,如果出现情况A,做什么处理,如果出现了情况B,做什么处理 问题规模小,可以步骤化,按部

    2024年02月13日
    浏览(48)
  • shell编程之存储读写测试实战脚本

    Shell编程是一种在命令行环境中编写程序的技术,常用于Linux和Unix系统。它主要使用Shell脚本语言来编写程序。Shell编程常用于系统管理、自动化任务、批处理等领域。 常用的Shell脚本语言包括Bash、Csh、Tcsh和Zsh等。Bash是最常用的Shell编程语言,它是大多数Linux和Unix系统的默认

    2024年02月12日
    浏览(43)
  • Shell脚本——编程规范与echo命令

    目录 一.Shell脚本编程概述 1.基本概念 2.作用 3.Linux系统中常见的Shell脚本种类 4.应用场景 5.问题补充 5.1 为什么系统上合法的Shel1要写入/etc/she1ls这个文件? 5.2 用户什么时候可以取得shell来工作?用户默认会取得哪一个shell? 二.Shell脚本的构成规范 三. Shell脚本的执行 1.脚本执行

    2024年02月05日
    浏览(58)
  • Linux系统Shell脚本编程之条件语句

    Shell 环境根据命令执行后的返回状态值 \\\" $? \\\" 来判断是否执行成功,当返回值为0时表示成功,否则表示失败或异常(非0值)。 使用专门的测试工具 test 命令,可以对特定条件进行测试,并根据返回值(值为0)来判断是否成立。 test命令格式 文件测试指的是根据给定的路径名

    2024年01月25日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包