-1

我在使用 $( 格式在 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 语句,所以我认为这不是问题。

4

1 回答 1

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]')
#   ^^               ^                     ^^
于 2013-02-26T19:27:51.583 回答