我是linux shell脚本新手,下面是我想使用的代码片段:
while IFS='' read -r line || [[ -n "$line" ]]; do
echo ""
echo ""
echo ""
echo "Counting the table : $line"
eval "hive -e 'select count(*) from $line'"
done < "$1"
我把它命名为count\u row.sh。用法如下:
$ ./count_row.sh t1.csv > row.txt
t1.csv基本上每行都包含一些表名。
我得到一个错误如下:
但我在这里借用的代码片段被标记为可接受的解决方案,大概它是正确编写的。那我还缺什么?非常感谢你。
1条答案
按热度按时间jckbn6z71#
如果每个表名都在自己的行中,那么这是一个常规文本文件,而不是csv。
尝试不使用
eval
,而改为内联运行语句。如果你想更好地测试你的脚本,我建议
for
在硬编码的表列表上循环。