Bash 错误:意外的运算符

Bash 错误:意外的运算符,bash,Bash,我试图检查文件的年龄,但根据脚本中使用的bash/sh,我得到了“预期一元运算符”和“意外运算符”错误 我怎样才能避免呢 如果我不使用通配符“*”,则所有操作都可以,但必须使用它。尝试引用该参数,因为find的通配符似乎会导致bash出现问题: test `find /mnt/backups/mysql/information_schema-20120521-*.sql -type f -mmin -1500` 我会试试看 test `find '/mnt/backups/mysql/info

我试图检查文件的年龄,但根据脚本中使用的bash/sh,我得到了“预期一元运算符”和“意外运算符”错误

我怎样才能避免呢


如果我不使用通配符“*”,则所有操作都可以,但必须使用它。

尝试引用该参数,因为
find的通配符似乎会导致bash出现问题:

test `find /mnt/backups/mysql/information_schema-20120521-*.sql -type f -mmin -1500`
我会试试看

test `find '/mnt/backups/mysql/information_schema-20120521-*.sql' -type f -mmin -1500`

如果您只想在/mnt/backups/mysql/

下创建文件,那么可以添加--maxdepth,看起来find会返回多个文件名<如果未指定运算符,则代码>测试
需要单个字符串参数。另一方面,
find
本身能够报告它是否找到了任何文件,如果这是您试图查找的文件的话。您似乎错过了使用
find
的一个模糊点。第一个参数必须是路径,而不是文件规范。带有
*.sql
的endind是一个文件规范。在下面的评论中,您不断引用变量。您的意思是
..*.sql
还是和env var类似的$var。如果您的意思是$var,它不能在单引号内,因为s引号会阻止变量扩展。要么根本没有引号,要么首选的解决方案是使用dbl引号,即
“$VAR”
。祝你好运。单独工作很好,但使用变量它仍然不工作。请尝试使用双引号:
find”/mnt/..$VAR..sql“..
if!测试
find'$DIR/$db-$date-*.sql'-type f-mmin-1500
单独工作正常,但使用变量时不工作。查找:`$DIR/$db-$date-*.sql':没有这样的文件或目录单独工作正常,但使用变量它不工作。#/bin/bash date=
date+%Y%m%d
RESULT=0 FILE=/tmp/mysqlstatus DBS=“$(mysql-Bse'show databases')”DIR=/mnt/backups/mysql for db in$DBS do if!测试
find'$DIR/$db-$date-*.sql'-type f-mmin-1500
then RESULT=$($RESULT+1))fi done echo$RESULT>$FILEUse{}:$DIR/${db}-${date}-*.sql'
find /mnt/backups/mysql/ -name "information_schema-20120521-*.sql" -type f -mmin -1500