我在使用$(格式。
)在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语句所以我不认为这是问题所在。
答案 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]')
# ^^ ^ ^^