【问题标题】:cross checking with mysql and path与mysql和路径交叉检查
【发布时间】:2012-07-23 11:34:34
【问题描述】:

我正在尝试交叉检查我拥有的文件名是否在我拥有的数据库列表中。如果不是,则将其删除。我遗漏了一些关键点,请帮我学习一下,谢谢。

这是我的代码:

#!/bin/bash
IFSTEMP=$IFS
IFS=\^



     rarFile=`find -name '*.mp4'`

       for r in $rarFile
        do
    filename=$(basename "$r")

    echo "$filename"

    myvariable=$(echo "SELECT nctid FROM $SQL_DATABASE.$SQL_TABLE WHERE nctid=$filname" | mysql -h$SQL_HOST -u$SQL_USERNAME -p$SQL_PASSWORD -N  $SQL_DATABASE)

    if(!$myvariable) {
    rm -rf $r
    }
    done


IFS="$IFSTEMP"

【问题讨论】:

  • 你错过了什么?您的输出与您的预期输出是什么?
  • 你想用 PHP 代码实现这个功能吗?
  • 回显前的这个$符号是什么意思myvariable=$(echo
  • 你好,@MichaelRobinson 它没有输出任何东西,因为我的代码不完整。
  • @Mr.Alien 从我在线阅读的内容来看,它给了我选择语句的输出

标签: php mysql linux bash centos


【解决方案1】:

IFS是shell用来分割参数的分隔符,不建议更改,这里显然没有理由更改它。默认为'\t\n'

看看区别:

(x='a b^c';IFS=\ $'\t\n';for s in $x;do echo $s;done)
(x='a b^c';IFS=^;for s in $x;do echo $s;done)

更多信息:

man bash
/IFS

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 2021-02-05
    • 2022-09-23
    • 1970-01-01
    • 2012-06-26
    • 2011-08-16
    相关资源
    最近更新 更多