Shellscript带有模糊的重定向错误

时间:2010-12-17 11:24:55

标签: mysql shell

我的炮弹无效:

#!/bin/bash
LIST="$(ls -rt *.log.*)"

for i in "$LIST"; do

echo $i

mysql --user=<user> --password=<passwd> <database> < $i

done

结果:./analisys.sh: line 5: $i: ambiguous redirect

你能帮助我吗?

2 个答案:

答案 0 :(得分:3)

如果要对每个空格分隔的项目进行操作,则不应展开$LIST。即删除两个"。在第一次出现时你也不需要它们。

当您使用echo $i列出项目时,这应该是显而易见的,我怀疑所有文件一次列出,而不是每次都列出。

#!/bin/bash
LIST=$(ls -rt *.log.*) # THIS LINE CHANGED

for i in $LIST; do # THIS LINE CHANGED

    echo $i
    mysql --user=<user> --password=<passwd> <database> < $i

done

答案 1 :(得分:0)

另一种方式

cat *.log.* > dump.dump

mysql --user=<user> --password=<passwd> <database> < dump.dump

我想像

mysql --user=<user> --password=<passwd> <database> < `cat *.log.*`

会使它成为1班轮,但我仍然会有模糊的重定向。