shell脚本练习 :备份文件(2)修订

2024-06-12 03:18

本文主要是介绍shell脚本练习 :备份文件(2)修订,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

             在上一个小练习的基础上,加入一点要求,同时判断备份数个文件。其实是9个及以下的,下面是判断备份多个文件的脚本。刚刚进行了大量改进,去除了很多可以省略的语句,并将格式进行了规范书写(发表完发现TAB格式都被吞了。。空格格式也不明显。。),精简了程序,也让自己对SH脚本基本编程语法有了更深刻的映象。以后有时间练习写个能备份任意个文件的(要用到shift吧),还有我发现如果输入的文件名字错了或不存在,系统会提示不存在,但是我们应该在脚本里面加入这些提醒,有时间再练习写下更完善的。(不管有没有实际用处,对熟悉shell脚本总还是有帮助的。)


#!/bin/bash

if [  ! -d /opt/backup ] ;then

      `mkdir /opt/backup`

      echo “/opt/backup is created.”

fi

flist=`ls /opt/backp`

#结构和语法上更加的精简明确。上面语句查找/建立文件备份目录。

#下面在外层for循环下用变量bkup依次从位置变量取值。

forbkup   

do

      sig=yes

#给信号变量sig赋值,下面会用信号来判断是否需要备份。

      for fileX in $flist

      do

           if [ $bkup = $flist ] ;then

                echo "FILE $1 is found."

                sig=no

#如果找到文件,就更该信号值,表示不需要备份了。

                break

           fi

      done

      if [ sig = yes ] ;then

            `cp $1 /opt/backup`

             echo "$1 is copied."   

       fi

#如果信号值sig没有改变,说明没找到文件,需要备份,在进入下次循环。找到则直接进入下次循环。

done



这篇关于shell脚本练习 :备份文件(2)修订的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1053046

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

Linux实现简易版Shell的代码详解

《Linux实现简易版Shell的代码详解》本篇文章,我们将一起踏上一段有趣的旅程,仿照CentOS–Bash的工作流程,实现一个功能虽然简单,但足以让你深刻理解Shell工作原理的迷你Sh... 目录一、程序流程分析二、代码实现1. 打印命令行提示符2. 获取用户输入的命令行3. 命令行解析4. 执行命令

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的