Shell Step by Step (4) —— Cron & Echo

6.脚本定时任务

<span class="hljs-preprocessor"># Example of job definition:</span>
<span class="hljs-preprocessor"># .-------------------------  minute (0 - 59)</span>
<span class="hljs-preprocessor"># |    .---------------------  hour (0 - 23)</span>
<span class="hljs-preprocessor"># |    |    .-----------------  day of month (1 - 31)</span>
<span class="hljs-preprocessor"># |    |    |    .-------------  month (1 - 12) </span>
<span class="hljs-preprocessor"># |    |    |    |    .---------  day of week (0 - 6) </span>
<span class="hljs-preprocessor"># |    |    |    |    |</span>
<span class="hljs-preprocessor"># *    *    *    *    *   user-name   command to be executed</span>

7.查看当前用户的UID

root<span class="hljs-variable">@kallen</span><span class="hljs-symbol">:/usr/data/kallendb_backup</span>
<span class="hljs-constant">UID</span> <span class="hljs-constant">PID</span> <span class="hljs-constant">PPID</span> <span class="hljs-constant">C</span> <span class="hljs-constant">STIME</span> <span class="hljs-constant">TTY</span> <span class="hljs-constant">TIME</span> <span class="hljs-constant">CMD</span>
root <span class="hljs-number">2872</span> <span class="hljs-number">2384</span> <span class="hljs-number">0</span> 09<span class="hljs-symbol">:</span><span class="hljs-number">43</span> pts/<span class="hljs-number">2</span> <span class="hljs-number">00</span><span class="hljs-symbol">:</span><span class="hljs-number">00</span><span class="hljs-symbol">:</span><span class="hljs-number">00</span> grep --color=auto <span class="hljs-constant">UID</span>

8.用Shell模拟一个进度条


  b=<span class="hljs-string">''</span>

  <span class="hljs-keyword">for</span> ((i=<span class="hljs-number">0</span>;<span class="hljs-variable">$i</span><=<span class="hljs-number">100;i+=<span class="hljs-number">2</span>))
  <span class="hljs-keyword">do</span>
      <span class="hljs-built_in">printf</span> <span class="hljs-string">"Progress:[%-50s]%d%%\r"</span> <span class="hljs-variable">$b</span> <span class="hljs-variable">$i</span>
      sleep <span class="hljs-number">0.1</span>

      b=
  <span class="hljs-keyword">done</span>
  <span class="hljs-built_in">echo</span></=<span>

Shell Step by Step (4) —— Cron &amp; Echo

在Shell脚本的编写应用中,有时候会须要用到图形界面的案例,比方默认cp复制文件为静默模式。无法看到拷贝的进度与百分比。
而dialog正是为Shell提供图形界面的工具,该工具能够为Shell脚本提供各式各样的图形界面,今天为大家介绍的是dialog提供的进度条图形功能。

dialog指令能够单独运行。格式为

 dialog --title <span class="hljs-string">"Copy"</span> --gauge <span class="hljs-string">"files"</span> <span class="hljs-number">6</span> <span class="hljs-number">70</span> <span class="hljs-number">10</span>

备注:

title表示图形进度条的标题。
gauge为正文内容。进度条高度为6,宽度70。显示运行进度为10%

<span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> {<span class="hljs-number">1</span>..<span class="hljs-number">100</span>} ;
<span class="hljs-keyword">do</span> sleep <span class="hljs-number">1</span>;
    <span class="hljs-built_in">echo</span> <span class="hljs-variable">$i</span> | dialog --title <span class="hljs-string">'Copy'</span> --gauge <span class="hljs-string">'I am busy!'</span> <span class="hljs-number">10</span> <span class="hljs-number">70</span> <span class="hljs-number">0</span>;
<span class="hljs-keyword">done</span>

以下案例中通过统计源文件个数。再据此计算出复制文件的百分比,在Shell中提供进度的显示。

该脚本有两个參数。第一个參数为源文件路径,第二个參数为目标路径。
假设您的应用案例不同能够据此稍作改动就可以使用。

<span class="hljs-shebang">#!/bin/bash    </span>

dir=<span class="hljs-variable">$1</span>/*
des=<span class="hljs-variable">$2</span>

[ <span class="hljs-operator">-d</span> <span class="hljs-variable">$des</span> ] && <span class="hljs-built_in">echo</span> <span class="hljs-string">"Dir Exist"</span> && <span class="hljs-keyword">exit</span> <span class="hljs-number">1</span>

mkdir <span class="hljs-variable">$des</span>

i=<span class="hljs-number">0</span>

n=<span class="hljs-built_in">echo</span> <span class="hljs-variable">$1</span>/* |wc -w

<span class="hljs-keyword">for</span> file <span class="hljs-keyword">in</span> <span class="hljs-built_in">echo</span> <span class="hljs-variable">$dir</span>
<span class="hljs-keyword">do</span>

    percent=$((<span class="hljs-number">100</span>*(++i)/n))
    cat <<eof xxx <span class="hljs-variable">$percent
    Copying file <span class="hljs-variable">$file</span> ...

    XXX
    EOF
    /bin/cp -r <span class="hljs-variable">$file</span> <span class="hljs-variable">$des</span> &>/dev/null
<span class="hljs-keyword">done</span> | dialog --title <span class="hljs-string">"Copy"</span> --gauge <span class="hljs-string">"files"</span> <span class="hljs-number">6</span> <span class="hljs-number">70</span>
clear</eof>

效果如图:

Shell Step by Step (4) —— Cron &amp; Echo

9.Echo输出

功能说明: 显示文字
语 法:

<span class="hljs-tag">echo</span> <span class="hljs-attr_selector">[ -ne ]</span>  <span class="hljs-attr_selector">[ &#x5B57;&#x7B26;&#x4E32; ]</span>  &#x6216;
<span class="hljs-tag">echo</span> <span class="hljs-attr_selector">[ --help ]</span>  <span class="hljs-attr_selector">[--version ]</span>

參数:

-<span class="ruby">n          &#x4E0D;&#x8981;&#x5728;&#x6700;&#x540E;&#x81EA;&#x5DF1;&#x4E3B;&#x52A8;&#x6362;&#x884C;
</span>-<span class="ruby">e          &#x82E5;&#x5B57;&#x7B26;&#x4E32;&#x4E2D;&#x51FA;&#x73B0;&#x4EE5;&#x4E0B;&#x5B57;&#x7B26;&#xFF0C;&#x5219;&#x7279;&#x522B;&#x52A0;&#x4EE5;&#x5904;&#x7406;&#xFF0C;&#x800C;&#x4E0D;&#x4F1A;&#x5C06;&#x5B83;&#x5F53;&#x6210;&#x4E00;&#x822C;&#x6587;&#x5B57;&#x8F93;&#x51FA;;
</span>\b          &#x5220;&#x9664;&#x524D;&#x4E00;&#x4E2A;&#x5B57;&#x7B26;&#xFF1B;
\f          &#x6362;&#x884C;&#x4F46;&#x5149;&#x6807;&#x4ECD;&#x65E7;&#x505C;&#x7559;&#x5728;&#x539F;&#x6765;&#x7684;&#x4F4D;&#x7F6E;&#xFF1B;
\r          &#x5149;&#x6807;&#x79FB;&#x81F3;&#x884C;&#x9996;&#x3002;&#x4F46;&#x4E0D;&#x6362;&#x884C;&#xFF1B;
\t          &#x63D2;&#x5165;tab&#x3002;
\v          &#x4E0E;\f&#x540C;&#x6837;&#xFF1B;
\nnn        &#x63D2;&#x5165;nnn&#xFF08;&#x516B;&#x8FDB;&#x5236;&#xFF09;&#x6240;&#x4EE3;&#x8868;&#x7684;ASCII&#x5B57;&#x7B26;&#x3002;
-<span class="ruby">-help      &#x663E;&#x793A;&#x5E2E;&#x52A9;
</span>-<span class="ruby">-version   &#x663E;&#x793A;&#x7248;&#x672C;&#x53F7;&#x4FE1;&#x606F;</span>

热门推荐

Original: https://www.cnblogs.com/yxwkf/p/5423835.html
Author: yxwkaifa
Title: Shell Step by Step (4) —— Cron &amp; Echo

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/529470/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【4】2022年6月

    6月15日 今早10点教师资格面试成绩出来了,幸好一次性通过。笔面都一次性通过,比我预想的顺利,谢谢各位考官的照顾。 我知道自己面试的时候既感冒又受伤,状态是不好的,发挥不了真实的…

    Linux 2023年6月13日
    079
  • shell order

    1,与 “-a” : a是and if [ 条件1 -a 条件2 ] ;then shell order shell order … fi 2,…

    Linux 2023年5月28日
    0109
  • rsync

    rsync是什么 rsync特性 1)可以镜像保存整个目录树和文件系统。 2)可以很容易做到保持原来文件的权限、时间、软硬连接等。 3)无需特殊权限即可安装。 4)快速:第一次同步…

    Linux 2023年6月6日
    093
  • 每天一个 HTTP 状态码 101

    101 Switch Protocols 指示服务器端响应了客户端切换协议的要求… 101 Switching Protocols 当客户端的请求具有 Upgrade …

    Linux 2023年6月7日
    0123
  • SA算法:从MTSP问题出发

    之前我在这篇博文中介绍了解决MTSP问题的相关思路,并附上了GitHub上的相关源码。在这篇文章中,我将详细介绍如何使用SA智能优化算法进行编程 1. SA算法的核心思路: SA(…

    Linux 2023年6月14日
    0105
  • Shell命令

    1.shell命令的执行机制:fork+exec执行命令(任何的shell都会执行) 2.shell中的用户输入处理 1 命令行参数:选项、参数 2 运行时输入 3 read命令:…

    Linux 2023年6月6日
    0105
  • 国产化之x64平台安装银河麒麟操作系统

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟v4,CPU使用飞腾处理器。飞腾处理器是ARMv8架构的,在之前的文章中介绍了使用QEMU模拟ARMv8架构安装银…

    Linux 2023年5月27日
    089
  • 如你所见

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月6日
    082
  • 最简单的,在win,linux中,用powershell,自动获取Let’s Encrypt证书方法

    powershell传教士原创 2020-04-12,2022-05更新 Let’s Encrypt证书有效期3个月,支持泛域名【*.你的网站.net】。支持n天内(一…

    Linux 2023年6月14日
    0105
  • SpringBoot + Vue + ElementUI 实现后台管理系统模板 — 后端篇(二): 整合 Redis(常用工具类、缓存)、整合邮件发送功能

    (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 — 前端篇(一):搭建基本环境:https://www.cnblogs.c…

    Linux 2023年6月11日
    0113
  • 嵌入式软件开发之程序架构设计-任务调度

    1 前言 在嵌入式MCU软件开发过程中,程序任务调度架构的搭建尤为重要,直接关系到该程序能支持多少功能(随着功能越多系统响应能力越弱,好的任务调度架构能够在保持相同的系统响应能力前…

    Linux 2023年6月7日
    0121
  • phpcms如何在前台文章列表前显示所属类别名称

    最近做单位网站模版遇到的问题,欲实现的效果: 但是phpcms中自带的文章列表标签没有这个功能,数据库中文章表中也只有类别id的字段,因此不能通过简单的{$r[catname]}读…

    Linux 2023年6月13日
    095
  • win11下关于安装umi成功后CMD命令不能使用的问题

    先找到你安装的umi全局路径 yarn global bin 然后把这个路径添加到系统变量中去:PATH 还是不能用的话就是找到 umi.cmd 文件的目录,把里面的C盘符号前面的…

    Linux 2023年6月14日
    0118
  • RPA 快手自动上传机器人

    bash;gutter:true;1、打开账号Cookie预存表格2、机器人自动登录账号3、机器人开始按照预设视频位置开始自动上传视频4、机器人开始自动填写视频相关信息内容5、完成…

    Linux 2023年6月7日
    0123
  • 机器学习入门–图学习基础01

    图表示学习入门知识 数学基础看文章理解图的拉普拉斯变换,解答了上一周文章公式中的L拉普拉斯矩阵是怎么来的 本文仅限我个人记录学习历程所用,目前是大一在读,刚刚接触AI领域。如有不足…

    Linux 2023年6月6日
    088
  • 并查集详解 图解引入到实现| Disjoint Sets details, intro to implementation with figures.

    Introduction of Disjoint Sets It’s easy to tell whether someone you know is your rel…

    Linux 2023年6月13日
    0114
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球