Linux Shell脚本攻略(1.10)

1.10 获取、设置日期和延时

  • 很多应用程序需要以不同的格式打印日期、设置日期和时间、根据日期和时间执行某项操作。延时通常用于在程序执行过程中提供一段等待时间(比如1秒)。同样的,我们也能够一多种格式打印日期,或者在命令行中设置日期。在类Unix系统中,日期被存储为一个整数,其大小为自世界标准时间起所流逝的秒数。这种计时方式称为纪元时Unix时间

1.10.1 获取、设置时间

  • 以下的程序给出了多种用法:
#!/bin/bash
start=$(date +%s)                              #获取纪元时间
date                                           #输出系统时间
date +%s                                       #打印纪元时间
date --date "Thu Nov 18 08:07:21 IST 2010" +%s #转换成纪元时间
date --date "Jan 20 2001" +%A                  #获取当前星期几
#date "+%d %B %Y"                              #按格式打印日期
date -s "21 June 2009 11:01:22"                #设置日期和时间
end=$(date +%s)                                #获取纪元时间
difference=$((end-start))                      #获取执行时间
echo Time taken to execute commands is $difference seconds.
  • 注意:可以用time来得到脚本的执行时间。

1.10.2 设置延时

  • 编写以循环方式运行的监视脚本时,设置时间间隔是必不可少的。为了在脚本中推迟执行一段时间,可以使用sleep no_of_seconds。
#!/bin/bash
echo -n Count:
tput sc                        #存储光标位置
count=0
while true;
    do
        if [ $count -lt 40 ]
        then
            let count++
            sleep 1;           #休眠1秒钟
            tput rc            #恢复光标位置
            tput ed            #清除当前位置到末尾的内容
            echo -n $count;
        else exit 0;
        fi
    done
  • 以上这段脚本显示了如何使用延时。tput sc存储光标位置,sc为 save cursor的缩写。在每次循环中,通过恢复之前存储的光标位置,在终端中打印出新的count值。tput rc用于恢复光标位置,rc为 recovery cursor的缩写。tput ed清除从当前光标位置到行尾之间的所有内容,使得旧的值被清除,写入新的值,ed可以看作是erase to end 的缩写。在这段程序中,通过sleep 1提供1秒钟的延时。

1.10.3 时间设置、读取时常用的参数

日期内容 格式说明
星期 %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 (例如:692508515)
Unix纪元时(以秒为单位) %s (例如:1290049486)

1.10.4 参考

时间: 2024-10-24 10:03:43

Linux Shell脚本攻略(1.10)的相关文章

LINUX SHELL脚本攻略笔记[速查]

Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述符和重定向 cat 数组和关联数组 alias date 调试脚本 函数和参数 管道 读取命令输出 read 字段分隔符和迭代器 循环 比较和测试 find xargs tr md5sum sha1sum 对目录进行校验 sort uniq tempfile split bash变量匹配切分 exp

老李分享:《Linux Shell脚本攻略》 要点(八)

老李分享:<Linux Shell脚本攻略> 要点(八) 1.打印进程 [[email protected] program_test]# ps -e | head  PID TTY          TIME CMD    1 ?        00:00:03 init    2 ?        00:00:00 kthreadd    3 ?        00:00:00 migration/0    4 ?        00:00:00 ksoftirqd/0    5 ?   

老李分享:《Linux Shell脚本攻略》 要点(二)

老李分享:<Linux Shell脚本攻略> 要点(二) poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478.Linuxshell是测试开发工程师的基本功之一,所以在poptest测试开发课堂上加入了大量的linuxshell的课程,为了学员开发跨平台的测试平台打基础. 1.cat cat -s //多个空白行压缩成一个 cat *.txt | tr -s '\n'   //

Linux Shell脚本攻略(1.5)

1.5 使用shell进行数学运算 在任何一种编程语言中,算术运算都是必不可少的,shell也不例外. 1.5.1 使用let.(())和[]进行算术运算 可以使用普通变量赋值方法定义数值,这是,它会被保存为字符串.我们可以通过使用let.(()).[]等操作符,使得这些变量进行算术运算.例如: #!/bin/bash no1=4 #此处no1义字符串形式存储 no2=5 #此处no2义字符串形式存储 let result=no1+no2 echo $result #输出结果为 9 let no

老李分享:《Linux Shell脚本攻略》 要点(六)

老李分享:<Linux Shell脚本攻略> 要点(六) 1.打印网络接口列表 [[email protected] touch_more]# ifconfig | cut -c-10 | tr -d ' ' | tr -s '\n'eth0lo //cut -c-10 ;  输出前10个字符; //tr -d ' ' ;      删除所有空格; //tr -s '\n';     压缩重复的换行符 2.查看名字服务器 [[email protected] touch_more]# cat

老李分享:《Linux Shell脚本攻略》 要点(三)

老李分享:<Linux Shell脚本攻略> 要点(三) 1.生产任意大小的文件 [[email protected] dd_test]#[[email protected] dd_test]# dd if=/dev/zero of=junk.data bs=1k count=1010+0 records in10+0 records out10240 bytes (10 kB) copied, 0.00137023 s, 7.5 MB/s 2.文件系统相关测试 [ -f $file_var

《Linux Shell脚本攻略》 笔记 第二章:常用命令

<Linux Shell脚本攻略> 笔记 第二章:常用命令 1.cat cat -s //多个空白行压缩成一个 cat *.txt | tr -s '\n'   //移除空白行 cat -n //加行号 2.find 沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作. eg: find ./ ! -name "*.txt" -print [[email protected] program_test]# find ./  -type f -name "

《Linux Shell脚本攻略》 笔记 第三章:文件操作

<Linux Shell脚本攻略> 笔记 第三章:文件操作 1.生产任意大小的文件 [[email protected] dd_test]# [[email protected] dd_test]# dd if=/dev/zero of=junk.data bs=1k count=10 10+0 records in 10+0 records out 10240 bytes (10 kB) copied, 0.00137023 s, 7.5 MB/s 2.文件系统相关测试 [ -f $file

Linux Shell脚本攻略(1.8)

1.8 使用别名 linux中的别名就相当于windows中的快捷方式,使用别名可以省去用户输入一长串命令序列的麻烦. 1.8.1 创建临时别名(快捷方式) alias new_command='command sequence' #格式说明 alias install='sudo apt-get install' #实例说明 在声明 install='sudo apt-get install'之后,就可以用install代替'sudo apt-get install'了.使用这种方式声明的别名