Bash脚本怪异行为

时间:2019-07-11 13:36:15

标签: bash concatenation

我制作了一个bash脚本(用于将数据插入mysql数据库),该脚本从文件中获取表的名称,然后在while循环中填充每个表。

该脚本在我的原始项目中运行良好,但是当我从存储库中克隆该项目时,该脚本将无法填充数据。

我注意到,如果我放:

echo -e "./folder/"$DB_TABLE".sql"

在无法运行的脚本中的if之前,它显示如下内容:

.sqllder/table_name

何时显示:

./folder/table_name.sql

似乎该连接无法正常工作。但是我不知道这种奇怪行为的原因是什么。

如果有人可以帮助我,我将不胜感激!


克隆项目后,我必须在2个配置文件中设置一些值,但是即使我将完全相同的值添加到原始项目中,脚本仍然会失败。

我尝试过在每个位置添加和删除双引号,但是行为没有改变。


input="./file.config";

populate_database() {
echo -e "Populating with seed data...";
while IFS= read -r DB_TABLE
do
    if [ -e "./folder/"$DB_TABLE".sql" ]; then

        mysql --user=$DB_USERNAME --password=$DB_PASSWORD --host=$DB_HOST $DB_NAME --default-character-set=utf8 < "./folder/"$DB_TABLE".sql" > ${MYSQL_ERROR_LOG} 2>&1;

    else
        echosucc "There is not data to populate the table: ${DB_TABLE}";
    fi
done < "$input"
}

0 个答案:

没有答案