Fedora将日期分配给变量以获得整数

时间:2015-08-04 03:18:59

标签: shell date if-statement fedora

我是linux环境和shell编程的新手。我试图做一个简单的shell脚本程序,我希望根据系统中的时间显示“早安”下午“晚安”或“晚安”。我也希望使用date函数执行此操作。 下面是我为完成上述任务而输入的代码。

#!bin/bash 
$ say=$(date +%H)
echo "echoo  $say"
if [ "$say" -gt 18 ]
then
var="Night"
elif [ "$say" -gt 15 ]
then
var="Evening"
elif [ "$say" -gt 12 ]
then
var="Afternoon"
else
var="Morning"
fi
echo "hello $USER , $var"

我打算在这里做的是将小时部分转换为变量并检查该整数落入的范围,以给出变量morning,night或其他值匹配的变量。 下面是我执行shell脚本时得到的输出

time.sh: line 3: $: command not found
echoo  
time.sh: line 8: [: : integer expression expected
time.sh: line 12: [: : integer expression expected
time.sh: line 16: [: : integer expression expected
hello achala , Morning

请帮我解决这个问题。提前完成。

1 个答案:

答案 0 :(得分:0)

第一行应该是:say = $(date" +%H")

试试这个:

#!bin/bash 
say=$(date "+%H")
echo "echoo  $say"
if [ "$say" -gt 18 ]
then
var="Night"
elif [ "$say" -gt 15 ]
then
var="Evening"
elif [ "$say" -gt 12 ]
then
var="Afternoon"
else
var="Morning"
fi
echo "hello $USER , $var"