每天一道编程题(4)

6.编写一个脚本,打印任何数的乘法表。如输入3则打印

  1*1=1
  2*1=2 2*2=4
  3*1=3 3*2=6 3*3=9

read -p "Please enter your number:" number
awk '{for(i=1;i<=$1;i++){for(j=1;j<=i;j++){printf("%d*%d=%d "),i,j,i*j}printf("\n")}}' <<<$number

   今天效率很高,和昨天那个差不多。

7. 编写一个脚本,输入自己的生日时间(YYYYMMDD),计算还有多少天多少个小时是自己的生日。

    看别人写的:

#!/bin/sh
awk '{print int($0/86400)"天"int($0%86400/3600)"小时"int($0%86400%3600/60)"分钟"}' <<<$[$(date -d "`date +%Y`${1:4}" +%s)-`date +%s`]

   其中date +%Y`${1:4}是指将参数从第四个字符开始截断。这里有个问题,此人今年刚过了生日,那么下一个生日即是明年才过,所以代码更改如下:

#!/bin/sh
time=$(($(date -d "`date +%Y`${1:4}" +%s)-`date +%s`))
if [ $time -le 0 ];then
  time=$(($time + 31536000))
fi
day=$(($time/86400))
hour=$(($time%86400/3600))
min=$(($time%86400%2400/60))
echo "$day天$hour小时$min分钟"

    这次又忘记赋值时不要引用$,并且中间无空格。切记!

 

你可能感兴趣的:(每天一道编程题(4))