【问题标题】:Bash scripts looping through files on hdfsBash 脚本循环遍历 hdfs 上的文件
【发布时间】:2020-01-16 22:10:51
【问题描述】:

我有一个简单的 bash 脚本..将 HDFS 上的所有文件路径连接到一个变量中,我想出了以下代码:

for filename in `hdfs dfs -ls /user/kmob/ctp_modules/conf | awk '{print $NF}'  |  tr '\n' ' '`
do
echo $filename;
$var=$var','$filename;
done

但我无法将所有文件变量放入 $var

/user/kmob/ctp_modules/conf/hive_meta_ddl.hql
-bash: =,/user/kmob/ctp_modules/conf/hive_meta_ddl.hql: No such file or directory

【问题讨论】:

  • 这到底是什么$var=$var','$filename;?错误来自这一行
  • 你的整个问题可以简化为$var=asdf
  • 另见shellcheck.net
  • 它应该输出 'file1,file2,file3' 到 $var

标签: bash variables syntax


【解决方案1】:

试试这个:

#!/bin/sh

for filename in `hdfs dfs -ls /user/kmob/ctp_modules/conf | awk '{print $NF}'  |  tr '\n' ' '`
do
echo $filename
if [ "$var" != "" ];then
var=`echo "${var},${filename}"`
else
var=${filename}
fi
done
echo $var

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多