• 小试牛刀-1.9获取终端信息1.10获取、设置日期和延时


    tput和stty是两款终端处理工具

    1)获取终端的行数和列数

    tput cols

    tput lines

    2)打印出当前终端名

    tput longname

    3)将光标移动到坐标(100,100)处

    tput cup 100 100

    4)设置终端背景颜色

    tput setb n (n可以在0到7之间取值)

    5)设置文本景色

    tput setf n)

    n可以是0到7之间取值

    6)设置文本样式为粗体

    tput bold

    7)设置下划线的起止

    tput smul

    tput rmul

    8)删除从当前光标位置到行尾的所有内容

    tput ed

    9)在输入密码时,不应该显示输入内容,实现:

    #!/bin/sh

    #Filename:passwd.sh

    echo -e "Enter password"

    stty -echo

    read passwd

    stty echo

    echo 

    echo $password read

    选项-echo禁止将输出发送到终端,而选项echo则允许发送输出。

    1.10获取、设置日期和延时

    许多应用程序需要以不同的格式打印日期、设置日期和时间、根据日期和时间执行操作。延时通常用于在程序执行过程中提供一段等待时间。

    在类unix系统中,日期被存储成一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起所流逝的秒数;这种计时方式称为纪元时或unix时间。

    1)读取日期

    $ date

    2)打印纪元时

    $ date +%s

    如何将日期串中得到对应的纪元时:

    $ date --date "Thu Nov 18 08:07:21 IST 2010" +%s

    选项--date用于提供日期串作为输入。但我们可以使用任意的日期格式化选项来打印输出。将日期串作为输入能够用来获知给定的日期是星期几。

    $ date --date "Jan 20 2001" +%A

    Saturday

    3)用格式串结合+作为date命令的参数,可以按照你的选择打印出对应格式的日期。

    $ date "+%d %B %Y"

    20 May 2010

    4)设置日期和时间

    date -s "格式化的日期字符串"

    eg:date -s "21 June 2009 11:01:22"

    5)有时候需要检查一串命令所花费的时间

    #!/bin/bash

    #Filename:time_take.sh

    start=$(date +%s)

    commands;

    statements;

    end=$(date+%s)

    difference=$((end-start))

    echo Time taken to execute commands is $difference seconds

    另一种方法是使用time<scriptpath>来得到执行脚本所花费的时间

    星期:  %a(Sat);%A(Saturday)

    月:%b(Nov);%B(November)

    日:%d(31)

    固定格式日期(mm/dd/yy):%D(10/18/10)

    年:%y(10);%Y(2010)

    小时:%I或者%H(08)

    分钟:%M(33)

    秒:%S(10)

    纳秒:%N(78978687686)

    UNIX纪元时(一秒为单位):%s(1290049486)

    补充内容--延时

    为了在脚本中生成延时,可以使用sleep: $sleep no_of_seconds

    下面脚本就使用tput和sleep从0开始计数到40

    #!/bin/bash

    #文件名-sleep.sh

    echo -n Count:

    tput sc

    count=0;

    while true;

    do

      if [ $count -lt 40 ];

      then

        let count++;

        sleep 1;

        tput rc

        tput ed

        echo -n $count

        else  exit 0;

      fi

    done

    在上面的例子中,变量count初始化为0,随后每循环一次便增加1.echo语句打印出count的值。我们用tput sc存储光标位置。在每次循环中,通过恢复之前存储的光标位置,在终端中打印出新的count值。恢复光标位置的命令是tput rc。tput ed清楚从当前光标位置到行尾之间的所有内容,使得旧的count值可以被清楚并写入新值。

  • 相关阅读:
    Android Studio快速定位当前文件所在的位置
    LeetCode:Search Insert Position
    apk当安装程序将文件复制到手机自带的指定文件夹
    《UNIX级别编程环境》注意读出信号(2)
    iOS:删除小程序
    百度CSND博客在搜索栏中显示图片
    HDU4893:Wow! Such Sequence!(段树lazy)
    Google I/O 2014? No,Android I/O 2014
    Android Push Notifications using Google Cloud Messaging (GCM), PHP and MySQL
    自己动手写CPU 笔记
  • 原文地址:https://www.cnblogs.com/gary-guo/p/6094995.html
Copyright © 2020-2023  润新知