#!/bin/bash num=hadoop fs -test -e '/origin_data/gmall/db/activity_info_full/2022-06-08' if[[ $num == 2 ]] then echo '存在' else echo '不存在' fi
时间: 2024-02-15 13:02:58 浏览: 80
解决-BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: 权限不够问题
这段代码存在语法错误,应该改为:
```bash
#!/bin/bash
num=$(hadoop fs -test -e '/origin_data/gmall/db/activity_info_full/2022-06-08'; echo $?)
if [[ $num == 0 ]]; then
echo '存在'
else
echo '不存在'
fi
```
其中,`$()` 表示执行命令并将其结果赋值给变量 `num`,`$?` 表示上一个命令的退出状态。`hadoop fs -test -e '/origin_data/gmall/db/activity_info_full/2022-06-08'` 命令会检查 Hadoop 分布式文件系统中是否存在指定的文件或目录,如果存在,则返回状态码 0,否则返回状态码 1。因此,`num` 的值为 0 或 1,如果为 0,则表示文件存在,如果为 1,则表示文件不存在。`if` 语句判断 `num` 的值,如果为 0,则输出“存在”,否则输出“不存在”。
阅读全文