shell脚本动画小工具

看gif图:

shell脚本版

脚本内容如下:

#!/usr/bin/env bash

## ------------------------------------------------------------
## Author:博客园——骏马金龙
## shell scripts:http://www.cnblogs.com/f-ck-need-u/p/7048359.html
## ------------------------------------------------------------ ## Usage:$0 "COMMAND"
## you must enclosing the COMMAND by double-quotes
## example1: $0 "sleep 3;echo haha"
## example2: $0 "service mysql start" killmyself="pkill -13 -f `basename $0`" trap "$killmyself" sigint while true;do
for i in '-' "\\" '|' '/';do
printf "\r%s" $i
sleep 0.2
done
done & bgpid=$! tmp="`bash -c \"$@\"`"
kill $bgpid
printf "\r%s\n" "$tmp"
$killmyself

必须将待运行的命令放进引号中包围,并作为脚本的参数。

## example1: $0 "sleep 3;echo haha"
## example2: $0 "service mysql start"
## example3: $0 "service mysql stop"

perl版

下面是用perl写的,作用完全一样。将内容保存到一个文件中,赋予可执行权限即可。同样,待执行的命令需要使用双引号包围。

#!/usr/bin/env perl
use strict;
use warnings; defined(my $pid = fork) or die "can't fork child: $!"; unless($pid){
# child process
select STDOUT; $| = 1;
while(1){
foreach my $i ('-','\\','|','/'){
printf("\r%s",$i);
select(undef,undef,undef,0.1)
}
}
} my $var = `/bin/sh -c "@ARGV"`;
kill INT => $pid or die "Cannot signal to $pid with SIGINT: $!";
printf "\r%s",$var;

假如该perl文件名为mygif.pl,用法:

./mygif "sleep 3;echo haha"
./mygif "service mysql start"
./mygif "service mysql stop"

shell脚本动画小工具的更多相关文章

  1. shell脚本调试之工具——bashdb

    bash是Unix/Linux操作系统最常用的shell之一,它非常灵活,和awk.c++配合起来异常强大 以下使用一个测试脚本来说明使用bash调试的方法 test.sh #!/bin/bash e ...

  2. 使用node.js开发一个生成逐帧动画小工具

    在实际工作中我们已经下下来不下于一万个npm包了,像我们熟悉的 vue-cli,react-native-cli 等,只需要输入简单的命令 vue init webpack project,即可快速帮 ...

  3. 远程执行shell脚本的小技巧

    很多时候需要批量跑脚本执行任务,但又不想分发再执行,而是直接一条命令下去就跑脚本,该怎么玩比较嗨? 例如以下脚本: #!/bin/bash echo "$@" echo " ...

  4. shell脚本 回顾 小练习

    1.把/OPT目录下(包含子目录)下所有后缀为“.sh”的文件后缀变更为“.shell” 2.将A.B.C目录下的文件A1.A2.A3文件改名为A4.A5.A63.如何在vi模式下将文件中的aa字符串 ...

  5. shell脚本之read工具

    #!/bin/bash # -*- coding: utf-8 -*- # echo -n "please input your name: " read name echo &q ...

  6. Linux中编写shell脚本的小例子

    1.创建一个test.sh的文件 touch test.sh 2.编辑这个文件 vi test.sh 3.进入到编辑页面后将编辑页面先切换成编辑模式(按Esc键就可以切换) 4.切换到编辑模式后开始向 ...

  7. shell 脚本常用调试方法

    曾经我刚开始学习 shell 脚本时,除了知道用 echo 输出一些信息外,并不知道其他方法,仅仅依赖 echo 来查找错误,比较难调试且过程繁琐.效率低下.本文介绍下我常用的一些 shell 脚本调 ...

  8. shell脚本调试

    转自:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/ 一. 前言 shell编程在unix/linux世界中使用得非常广泛,熟 ...

  9. shell脚本的调试技巧

    请参考文章:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/index.html 读后的感觉,还是用shell的选项灵活,方便. ...

随机推荐

  1. pycharm clion phpstorn全家桶激活码(可以用到2019年4月)

    SXXI7H41YN-eyJsaWNlbnNlSWQiOiJTWFhJN0g0MVlOIiwibGljZW5zZWVOYW1lIjoicGF5bmUgd2FuZyIsImFzc2lnbmVlTmFtZ ...

  2. WEB服务器搭建(Apache+Tomcat+eclipse)

    1.下载xampp安装,选择Apache+MySQL+Tomcat 官方下载链接:https://www.apachefriends.org/zh_cn/download.html 2.下载安装jav ...

  3. Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes

    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes 题目连接: http://code ...

  4. 基于UML的时空建模

    一.基本信息 标题:基于UML的时空建模 时间:2018 出版源:东北大学学报(自然科学版) 领域分类:UML模型:RCC-8空间拓扑:Allen-13时态拓扑:时空数据:建模 二.研究背景 问题定义 ...

  5. 获取resource下文件

    Resource resource = new ClassPathResource(certPath);File file= resource.getFile();

  6. Java对象序列化和返序列化

    public class SerializeUtil { /** * 序列化 * * @param object * @return */ public static byte[] serialize ...

  7. 背水一战 Windows 10 (98) - 关联启动: 使用外部程序打开一个文件, 使用外部程序打开一个 Uri

    [源码下载] 背水一战 Windows 10 (98) - 关联启动: 使用外部程序打开一个文件, 使用外部程序打开一个 Uri 作者:webabcd 介绍背水一战 Windows 10 之 关联启动 ...

  8. webpack之牛刀小试 打包并压缩html、js

    1.创建项目文件夹test,在文件夹下创建src文件夹用来存放源码,在src文件夹下创建index.html/index.js两件文件. 我们的最终目的是将这两个文件打包压缩并输出到/test/dis ...

  9. 透彻讲解,Java线程的6种状态及切换

    Java中线程的状态分为6种. 1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法.2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running) ...

  10. Django项目解决跨域问题

    在配置文件INSTALLED_APPS中添加: 'corsheaders', 在MIDDLEWARE中添加: 'corsheaders.middleware.CorsMiddleware', 最后添加 ...