我正在尝试运行下面提到的脚本,但它给出了一个错误:
last=`grep 'xyz@gmail.com' test | sed 's/"//g'| awk 'BEGIN { FS = "," } ; { print $8 }' | awk 'BEGIN { FS = " " } ; { print $1 }' | grep $(date +%Y-%m-%d --date='1 days ago') | head -1`
d=`(date +%Y-%m-%d --date='3 days ago')`
echo $d--$last
if [ $d == $last ]
then
h=`grep 'xyz@gmail.com' test | wc -l`
echo $h
fi
文件测试格式为-:
"xyz@gmail.com","74","PR-460","Mob","one","i.3","2013-11-20 18:12:26","2013-11-21 11:55:33"
"xyz@gmail.com","74","PR-460","Mob","one","i.3","2013-11-20 18:12:26","2013-11-21 11:55:33"
"xyz@gmail.com","74","PR-460","Mob","one","i.3","2013-11-20 18:12:26","2013-11-21 11:55:33"
错误-: 第 4 行:[: 2013-11-20: 预期整数表达式
最佳答案
要么使用 [[ ]]
(不需要引号,并且在 bash、ksh 和 zsh 中可用),要么使用 [ ]
并引用您的扩展。也就是说,要么:
# if your script starts with #!/bin/bash
if [[ $d = $last ]]
或
# if your script starts with #!/bin/sh
if [ "$d" = "$last" ]
顺便说一下,grep |标准 | awk
非常讨厌 -- awk 可以在内部完成 grep 和 sed 可以做的所有事情。
关于linux - 无法在 shell 脚本中运行 if 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20153385/