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

6.脚本定时任务

# Example of job definition:
# .-------------------------  minute (0 - 59)
# |    .---------------------  hour (0 - 23)
# |    |    .-----------------  day of month (1 - 31)
# |    |    |    .-------------  month (1 - 12)
# |    |    |    |    .---------  day of week (0 - 6)
# |    |    |    |    |
# *    *    *    *    *   user-name   command to be executed

7.查看当前用户的UID

root@kallen:/usr/data/kallendb_backup# ps -ef | grep UID
UID PID PPID C STIME TTY TIME CMD
root 2872 2384 0 09:43 pts/2 00:00:00 grep --color=auto UID

8.用Shell模拟一个进度条

  #! /bin/bash
  #
  # Progress Bar
  # Print # to view the process bar

  # create variable
  b=‘‘

  # for loop
  for ((i=0;$i<=100;i+=2))
  do
      printf "Progress:[%-50s]%d%%\r" $b $i
      sleep 0.1

      b=#$b
  done
  echo

在Shell脚本的编写应用中,有时候会须要用到图形界面的案例,比方默认cp复制文件为静默模式。无法看到拷贝的进度与百分比。

而dialog正是为Shell提供图形界面的工具,该工具能够为Shell脚本提供各式各样的图形界面,今天为大家介绍的是dialog提供的进度条图形功能。

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

 dialog --title "Copy" --gauge "files" 6 70 10

备注:

title表示图形进度条的标题。

gauge为正文内容。进度条高度为6,宽度70。显示运行进度为10%

for i in {1..100} ;
do sleep 1;
    echo $i | dialog --title ‘Copy‘ --gauge ‘I am busy!‘ 10 70 0;
done

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

该脚本有两个參数。第一个參数为源文件路径,第二个參数为目标路径。

假设您的应用案例不同能够据此稍作改动就可以使用。

#!/bin/bash
# Description: A shell script to copy parameter1 to
# parameter2 and Display a progress bar
# Author:Jacob
# Version:0.1 beta    

# Read the parameter for copy,$1 is source dir
# and $2 is destination dir.
dir=$1/*
des=$2
# Test the destination dirctory whether exists
[ -d $des ] && echo "Dir Exist" && exit 1
# Create the destination dirctory
mkdir $des
# Set counter, it will auto increase to the number of
# source file.
i=0
# Count the number of source file
n=`echo $1/* |wc -w`    

for file in `echo $dir`
do
    # Calculate progress
    percent=$((100*(++i)/n))
    cat <<EOF
    XXX
    $percent
    Copying file $file ...
    XXX
    EOF
    /bin/cp -r $file $des &>/dev/null
done | dialog --title "Copy" --gauge "files" 6 70
clear

效果如图:

9.Echo输出

功能说明: 显示文字

语 法:

echo [ -ne ]  [ 字符串 ]  或
echo [ --help ]  [--version ]  

參数:

-n          不要在最后自己主动换行
-e          若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出;
\b          删除前一个字符;
\f          换行但光标仍旧停留在原来的位置;
\r          光标移至行首。但不换行;
\t          插入tab。
\v          与\f同样;
\nnn        插入nnn(八进制)所代表的ASCII字符。
--help      显示帮助
--version   显示版本号信息

热门推荐

时间: 2025-01-13 05:28:46

Shell Step by Step (4) —— Cron &amp; Echo的相关文章

Shell Step by Step (3) —— Stdin &amp;amp; if

4.输入输出 #! /bin/bash # Read users input and then get his name read -p "Please input your first name: " firstName read -p "Please input your last name: " lastName echo -e "Your full name is: $firstName $lastName" read使用方法: read

精通initramfs构建step by step

http://hi.baidu.com/jonathan2004/blog/item/db7bf38aad11759ea4c2721d.html 精通initramfs构建step by step (1)--hello world 2009-12-08 19:19 一.initramfs是什么 在2.6版本的linux内核中,都包含一个压缩过的cpio格式的打包文件.当内核启动时,会从这个打包文件中导出文件到内核的rootfs文件系统, 然后内核检查rootfs中是否包含有init文件,如果有则

WPF Step By Step 系列-Prism框架在项目中使用

WPF Step By Step 系列-Prism框架在项目中使用 回顾 上一篇,我们介绍了关于控件模板的用法,本节我们将继续说明WPF更加实用的内容,在大型的项目中如何使用Prism框架,并给予Prism框架来构建基础的应用框架,并且如何来设计项目的架构和模块,下面我们就来一步步开始吧. 本文大纲 1.Prism框架下载和说明 2.Prism项目预览及简单介绍. 3.Prism框架如何在项目中使用. Prism框架下载和说明 Prism框架是针对WPF和Silverlight的MVVM框架,这

FreeSWITCH 1.2.5.3 Step by Step Install

Ubuntu: apt-get -y install build-essential automake autoconf git-core wget libtool apt-get -y install libncurses5-dev libtiff-dev libjpeg-dev zlib1g-dev 从 Git 仓库安装: 从代码库安装能让你永远使用最新的版本: git clone git://git.freeswitch.org/freeswitch.git cd freeswitch .

数论之高次同余方程(Baby Step Giant Step + 拓展BSGS)

什么叫高次同余方程?说白了就是解决这样一个问题: A^x=B(mod C),求最小的x值. baby step giant step算法 题目条件:C是素数(事实上,A与C互质就可以.为什么?在BSGS算法中是要求a^m在%c条件下的逆元的,如果a.c不互质根本就没有逆元.) 如果x有解,那么0<=x<C,为什么? 我们可以回忆一下欧拉定理: 对于c是素数的情况,φ(c)=c-1 那么既然我们知道a^0=1,a^φ(c)=1(在%c的条件下).那么0~φ(c)必定是一个循环节(不一定是最小的)

Git Step by Step – (8) Git的merge和rebase

前面一篇文章中提到了"git pull"等价于"git fetch"加上"git merge",然后还提到了pull命令支持rebase模式,这篇文章就介绍一下merge和rebase之间有什么差别. 由于我们主要是想看看merge跟rebase之间的区别,这里就是用本地仓库的分支进行演示了. merge 其实在介绍分支的那篇文章中已经介绍过了一些分支merge的内容,这里就进行一些补充和总结. 下面我们基于本地一个仓库开始介绍,当前仓库的分支情

C# 2012 step by step 学习笔记8 CHAPTER 9 Creating Value types with enumerations and Structures

C# 2012 step by step 学习笔记8 CHAPTER 9 Creating Value types with enumerations and Structures things about 1. Declare an enumeration type. 2. Create and use an enumeration type. 3. Declare a structure type. 4. Create and use a structure type. 5. Explain

Linux Booting Process: A step by step tutorial for understanding Linux boot sequence

One of the most remarkable achievement in the history of mankind is computers. Another amazing fact about this remarkable achievement called computers is that its a collection of different electronic components, and they work together in coordination

C++开发WPF,Step by Step

示例代码 使用C++来开发WPF,主要是如何在MFC(Win32)的窗口中Host WPF的Page.下面我就做个详细的介绍. 一.创建工程, 由于MFC的Wizard会生成很多用不到的代码,所以我准备从一个空的工程开始创建一个MFC的工程. a)         打开VS2005,菜单File->New->Projects-, 左面选择Visual C++->Win32,右面选择Win32 Console Application,给工程起个名字CPlusPlus_WPF, Ok进入下一

数据库设计 Step by Step (1)——扬帆启航

引言:一直在从事数据库开发和设计工作,也看了一些书籍,算是略有心得.很久之前就想针 对关系数据库设计进行整理.总结,但因为种种原因迟迟没有动手,主要还是惰性使然.今天也算是痛下决心开始这项卓绝又令我兴奋的工作.这将是一个系列的文 章,我将以讲座式的口吻展开讨论(个人偷懒,这里的总结直接拿去公司培训新人用). 系列的第一讲我们先来回答下面几个问题 数据库是大楼的根基 大多数程序员都很急切,在了解基本需求之后希望很快的进入到编码阶段(可能只有产出代码才能反映工作量),对于数据库设计思考得比较少. 这