linux - 无法在 shell 脚本中运行 if 条件

标签 linux shell

我正在尝试运行下面提到的脚本,但它给出了一个错误:

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/

相关文章:

php - 干预/图像需要 FileInfo

Linux/Unix 手册页语法约定

linux - Bash 将 pid 内核增加到无限大循环

python - 如何像 bash 中的函数一样调用 python 脚本?

linux -/var/run/screen/... 上的 "p"权限是什么?

bash - 检查是否从 shell 或其他脚本/应用程序调用了 bash 脚本

linux - 无法以 root 身份运行 Chef

c++ - 防止 Ctrl-C 关闭程序

unix - 如何编写每 N 行仅输出一行的 unix 过滤器

python - 需要帮助从 python 项目中的 pygtk GUI 实时捕获 STDOUT