Bash Scripting:使用$(分配变量

时间:2013-02-26 19:18:16

标签: bash

我在使用$(格式。

)在bash shell中设置变量时遇到了最糟糕的时间

这就是我所拥有的:

#!/bin/bash

var= date
echo $var

hrs="NA"
min="NA"
t="AM"
hr=12

var= date | grep -o [0-9][0-9]':'[0-9][0-9]
echo $var

if echo $var | grep -q [0-9][0-9] | > 12
then

echo $hrs
hrs=$(echo $var | grep -o "[0-9][0-9]")
echo $hrs
hrs="$hrs-$hr"
fi

echo $hrs

if $var | grep -q [0-9][0-9] | > 12
then
    t="PM"
fi

echo $t

然而,当我在之后回显hrs变量时,它是一个空字符串。有人可以解释我的任务出错吗?我知道我正在进入if语句所以我不认为这是问题所在。

1 个答案:

答案 0 :(得分:1)

我猜你想要这样的东西:

if [ $(echo "$var" | grep -q [0-9][0-9]) -ge 12 ]
then
    hrs=$(echo "$var" | grep -o "[0-9][0-9]")
fi

在您的代码中,您应该更改

var= date | grep -o [0-9][0-9]':'[0-9][0-9]
#   ^                         ^ ^

var=$(date | grep -o '[0-9][0-9]:[0-9][0-9]')
#   ^^               ^                     ^^