【发布时间】:2018-04-20 04:35:36
【问题描述】:
我有一个脚本,它将带有通配符的 hdfs 文件路径分配给变量,但通配符不知何故不起作用。所以我写了这个测试脚本,在我的主目录中创建了一个文件some-file.txt
FILEPATH=~/some*
echo $(ls $FILEPATH)
echo $FILEPATH
APPJAR=hdfs:///user/myusername/myproject/lib/myproject*.jar
echo $(hdfs dfs -ls $APPJAR)
echo $APPJAR
而且输出让我感到惊讶,因为前 3 行产生了我预期的结果,但 hdfs 行没有。
/home/myusername/some-file.txt
/home/myusername/some-file.txt
-rw-r--r-- 3 myusername supergroup 188267249 2018-04-19 23:20 hdfs:///user/myusername/myproject/lib/myproject-1.0.1-SNAPSHOT-f7b.jar
hdfs:///user/myusername/myproject/lib/myproject*.jar
显然,自从hdfs dfs -ls 命令起作用后,该文件就存在于 HDFS 中。但是为什么APPJAR 变量没有成为实际的文件名呢?是不是 hdfs 命令的问题?
【问题讨论】: