编程莽夫 2022-03-25 17:57 采纳率: 0%
浏览 282

hdfs dfs -test -e返回值和shell脚本if语句判断问题

问题遇到的现象和发生背景

hadoop 中 $(hdfs dfs -test -e file: ///home/hadoop/text.txt) 是判断有没有text.txt这个文件,有的话输入echo $?就是0,没有的话就是1。
那么可不可以把$(hdfs dfs -test -e file:///home/hadoop/text.txt)理解为一个函数调用,并且这个函数会返回0或1

下面这段代码的作用是从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名
if $(hdfs dfs -test -e file:///home/hadoop/text.txt);
then $(hdfs dfs -copyToLocal text.txt ./text2.txt); 
else $(hdfs dfs -copyToLocal text.txt ./text.txt); 
fi

那么在这段shell命令中,如果有text.txt文件。那么$(hdfs dfs -test -e file:///home/hadoop/text.txt)的值应该是0,那么会执行else语句,即不重命名。但此刻理应执行then语句,要重命名。

但在实际运行中,该段代码是没有问题的。我是哪里理解错了呢?

  • 写回答

2条回答 默认 最新

  • CSDN专家-微编程 2022-03-25 20:47
    关注

    题主,你究竟想问什么呀,你的问题描述的很矛盾,很让人摸不着头脑

    img

    程序代码即使正确也要视情况而定是否能运行,通常即使程序没问题,也不一定可以顺利执行,毕竟很容易让人忽略权限的问题,比如说shell脚本文件,要读取的目录文件,文件所在的目录等有没有可读可写可执行权限

    评论

报告相同问题?

问题事件

  • 创建了问题 3月25日

悬赏问题

  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler