设为首页 加入收藏

TOP

shell实现一个简单进度条
2017-07-02 10:22:18 】 浏览:217
Tags:shell 实现 一个 简单 进度

shell简单语法

条件测试

用命令test或[ 测试一个条件是否成立。如果测试条件为真,命令的Exit Status为0,测试条件为假,Exit Status为1。
这里写图片描述

这里写图片描述vc88L3N0cm9uZz48L3A+DQo8cHJlIGNsYXNzPQ=="brush:java;"> -lt//小于 -le//小于等于 -gt//大于 -ge//大于等于 -eq//等于 -ne//不等于

测试命令
这里写图片描述

与 或 非 的测试命令
这里写图片描述

分支语句if/then/elif/else/fi

#!/bin/bash
read val 
if [ $val -eq 100 ]
then
    echo "true"
else
    echo "false"
fi

if可以添加对任何命令的检测,它是根据命令的退出码判断
if支持嵌套
if不能出现空的代码块

case…esac
可以检测所有语句包括正则表达式

#!/bin/bash
read op
case $op in
    start )
    echo "start"
    ;;
    stop )
    echo "stop"
    ;;
    restart )
    echo "restart"
    ;;
    * )
    echo "default"
esac

循环语句

for/do/done

#!/bin/bash
for i in {1..10}
do
    echo $i
done
#!/bin/bash
for(( i=1; i<10; i++))//当成c语言的语法来处理
do
    echo $i
done

while/do/done

#!/bin/bash
i=0
while [ $i -le 10 ]
do
    echo $i
    let i++
done

位置参数和特殊变量

$0//相当于c语言main函数的argv[0]
$1,$2,$3... //位置参数,相当于c语言main函数的argv[1],argv[2]...
$#//相当于main函数的argc-1
$@//表示参数列表“$1”"$2"...
$?//上一条命令的Exit Status
$$//当前shell的进程号

函数

#!/bin/bash
function fun()
{
    return $1

}
fun "$@"//传参
ret=$?//接受上一条命令的退出码
if [ $ret -eq 0 ]
then
    echo "success"
else
    echo "false"
fi

数组

arr=(1 2 3 "e" 5.34)//用空格隔开
echo ${arr[3]}//输出下标为3的
echo ${arr[@]}//将数组整体输出
echo ${arr[*]}//将数组个数作为变量输出


进度条实现

#!/bin/bash
i=0
bar=''
index=0
arr=( "|" "/" "-" "\\" )
while [ $i -le 100 ]
do
    let index=index%4
    printf "[%-100s][%d%%][\e[43;46;1m%c\e[0m]\r" "$bar" "$i" "${arr[$index]}"
    let i++
    let index++
    usleep 30000
    bar+='#'
done
printf "\n"

这里写图片描述

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++ limits头文件的用法(numeric.. 下一篇C++ 命名空间-namespace作用与使..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目