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 显示版本号信息
Shell Step by Step (4) —— Cron & Echo的更多相关文章
- Shell Step by Step (3) —— Stdin & if
4.输入输出 #! /bin/bash # Read users input and then get his name read -p "Please input your first n ...
- 精通initramfs构建step by step
(一)hello world 一.initramfs是什么 在2.6版本的linux内核中,都包含一个压缩过的cpio格式 的打包文件.当内核启动时,会从这个打包文件中导出文件到内核的rootfs ...
- Step by Step Process of Migrating non-CDBs and PDBs Using ASM for File Storage (Doc ID 1576755.1)
Step by Step Process of Migrating non-CDBs and PDBs Using ASM for File Storage (Doc ID 1576755.1) AP ...
- WPF Step By Step 系列-Prism框架在项目中使用
WPF Step By Step 系列-Prism框架在项目中使用 回顾 上一篇,我们介绍了关于控件模板的用法,本节我们将继续说明WPF更加实用的内容,在大型的项目中如何使用Prism框架,并给予Pr ...
- Linux 学习 step by step (2)
Linux 学习 step by step (2) Linux,想要我说爱你真的不容易了,尽管,你是ubutun,尽管,你有蛮界面.但是,操作你,还是没有操作windows那么的如鱼得水了.为了更 ...
- Step By Step(Lua输入输出库)
Step By Step(Lua输入输出库) I/O库为文件操作提供了两种不同的模型,简单模型和完整模型.简单模型假设一个当前输入文件和一个当前输出文件,他的I/O操作均作用于这些文件.完整模型则使用 ...
- Step by step Dynamics CRM 2011升级到Dynamics CRM 2013
原创地址:http://www.cnblogs.com/jfzhu/p/4018153.html 转载请注明出处 (一)检查Customizations 从2011升级到2013有一些legacy f ...
- Step by Step 创建一个新的Dynamics CRM Organization
原创地址:http://www.cnblogs.com/jfzhu/p/4012833.html 转载请注明出处 前面演示过如何安装Dynamics CRM 2013,参见<Step by st ...
- Step by step Install a Local Report Server and Remote Report Server Database
原创地址:http://www.cnblogs.com/jfzhu/p/4012097.html 转载请注明出处 前面的文章<Step by step SQL Server 2012的安装 &g ...
- Step by step Dynamics CRM 2013安装
原创地址:http://www.cnblogs.com/jfzhu/p/4008391.html 转载请注明出处 SQL Server可以与CRM装在同一台计算机上,也可安装在不同的计算机上.演示 ...
随机推荐
- windows安装配置git和Tortoisegit
git github gitlab Tortoisegit 的概念自行百度 1. 安装git 2. 安装小乌龟:Tortoisegit 和中文包 3. 配置 4. 使用 参考: 目录 安装及配置 ...
- sqlserver服务启动后停止,传递给数据库 'master' 中的日志扫描操作的日志扫描号无效
电脑异常重启,导致SqlServer服务启动后,自动停止,在[计算机管理]-[事件查看器]-[windows日志]中进行查看系统错误日志,在[应用程序]下发现可能的错误信息有以下两条: 1.错误:传递 ...
- SQL类型转换和数学函数
- 卓越的目标检测器Pelee
Densenet的改良—PeleeNET Pelee: A Real-Time Object Detection System on Mobile Devices 论文地址:https://arxiv ...
- JProfiler 入门教程
推荐文章:JProfiler 入门教程 一.安装JProfiler 从http://www.ej-technologies.com/下载5.1.2并申请试用序列号 二.主要功能简介 1.内存剖析 Me ...
- js子节点children和childnodes的用法(非原创)
想要获取子节点的数量,有几种办法. childNodes 它会把空的文本节点当成节点, <ul> 文本节点 <li>元素节点</li> 文本节点 <li> ...
- myEclipse开发内存溢出解决办法myEclipse调整jvm内存大小java.lang.OutOfMemoryError: PermGen space及其解决方法
摘要: tomcat部署多个项目后,启动tomcat正常,访问项目时却会出现该错误在网上查了查又试了好几次,才解决,将解决方法记录下来,以方便以后查看或让遇到同样问题的朋友有个参考 PermGen s ...
- php手动搭建wamp环境(一)--之 Windows系统下PHP环境搭建
1.PHP环境搭建的前提是 Apache HTTP Server (Apache 服务器)已经安装部署成功,并可以正常访问到服务器的主页面.Apache HTTP Server 的安装部署已经在上一篇 ...
- AOJ 2249 Road Construction (dijkstra)
某国王需要修路,王国有一个首都和多个城市,需要修路.已经有修路计划了,但是修路费用太高. 为了减少修路费用,国王决定从计划中去掉一些路,但是需要满足一下两点: 保证所有城市都能连通 所有城市到首都的最 ...
- Django2.0 path与Django1.x版本url正则匹配问题
2.0内的path匹配正则时候无效, 导入re_path即可匹配正则