【发布时间】:2011-11-08 04:52:00
【问题描述】:
我正在创建一个 bash 脚本,它将使用 SQL*Loader 加载 CSV 文件。请参考以下代码:
#!/bin/bash
FILENAME = '/u02/logs/$(date -d '2 days ago' +%Y-%m-%d)*.csv'
# LOAD CSV FILE USING SQL*LOADER
sqlldr username/password@localhost control=control.ctl data=$FILENAME
但是,当我尝试运行此脚本时,我收到以下错误:SQL*Loader-500: 无法打开文件 (/u02/logs/*2011-11-06*.csv)。我发现问题是我的 * 通配符在 bash 中被解释为字符串而不是通配符。
有没有办法告诉 bash 我的星号 (*) 是通配符而不是字符串?
感谢您的支持。
【问题讨论】:
-
您的
$FILENAME正在使用单个刻度。没试过,但你试过用双引号代替吗? -
是的。事实上,我可以回显完整的 $FILENAME。但是当我把它放在我的 SQL*Loader 中时,它根本就不起作用。
-
您会发现解决方案比您预期的要难。
标签: database linux bash unix sql-loader