您的位置:首页 > 运维架构 > Shell

Shell - 6

2016-03-19 00:45 441 查看
前篇讲到,我们习惯在一系列脚本操作上,首先输出当前路径,然后输出当前的时间。

这里我们学习如何获取当前的时间。

参考:
http://www.cnblogs.com/mfryf/archive/2012/03/23/2413362.html
获取时间的方式格式各样,这里给出一个例子:

#!/bin/sh

DATE=`date +%Y%m%d`

echo $DATE;

注意Shell的变量不用去声明和定义,直接写一个就可以用了,但是在引用变量的时候,需要加一个$取变量符号
这样输出的事当前的年月

那如果有时候我们不需要输出当前的时间,而自己输入一个时间呢?Shell语言更像一种面相过程的语言,我们用逻辑思路就可以得到想要的实现方式:

思路:

1.我们需要自己输入,所以需要输入变量,前面一个文章已经说得很清楚,$#就是取当前脚本输入参数的方法

2.我们需要引入一个判断,如果有输出则用输入的,如果没有呢?用当前的,Shell的if语句,参考:
http://www.dutycode.com/post-46.html
这样,我们就可以得到想要的代码了:

if [ $# -eq 1 ]; then
DATE=$1
else
DATE=`date +%Y%m%d`
fi

稍作解析:
$#表示脚本的参数,如果参数个数为1,则执行,将参数一赋予变量DATE,否则,用当前的计算方式,fi为结束逻辑判断

结合,前面的输出绝对路径,一个脚本的习惯开头就得到了:

#!/bin/sh

cd `dirname $0`;echo "当前目录:"`pwd`
if [ $# -eq 1 ]; then
DATE=$1
else
DATE=`date +%Y%m%d`
fi

echo $DATE;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Shell Linux