if [[ "$(basename "$file")" != *.gz ]]; then echo "The file is not a .gz file." fi 不存在时报 sh: EAST-2023-05-10.log.gz: unknown operand
时间: 2024-03-07 14:48:40 浏览: 20
这个错误可能是因为你的if语句缺少了一个"then"关键字,导致Shell无法正确解析语句。你需要在if语句的最后加上一个"then"关键字,例如:
```
if [[ "$(basename "$file")" != *.gz ]]; then
echo "The file is not a .gz file."
fi
```
另外,你也可以尝试使用双引号将*.gz包裹起来,例如:
```
if [[ "$(basename "$file")" != "*.gz" ]]; then
echo "The file is not a .gz file."
fi
```
这样也可以避免一些潜在的语法错误。希望能帮到你。
相关问题
if [[ "$(basename "$file")" != "*.gz" ]]; then echo "The file is not a .gz file." fi 判断是错的
你是对的,这个判断条件是有问题的。因为引号包裹的字符串不会被解析为通配符,所以判断条件始终为真。正确的判断条件应该是:
```
if [[ "$(basename "$file")" != *.gz ]]; then
echo "The file is not a .gz file."
fi
```
这样就可以正确地判断basename后的文件名是否以.gz为后缀了。非常抱歉之前给你带来了困惑。
#!/bin/bash if [[ $0 == *.sh ]]; then echo "这是一个脚本文件" else echo "这不是一个脚本文件" fi 为什么命令行中执行该脚本时,txt文件也是显示脚本文件
该脚本判断当前脚本文件名是否以 `.sh` 结尾来确定当前文件是否为脚本文件。如果你在命令行中执行 `./test.sh`,那么 `$0` 变量会被设置为 `./test.sh`,因此该脚本会判断 `./test.sh` 是否以 `.sh` 结尾。
如果你在同一个目录下存在一个以 `.txt` 结尾的文件,例如 `test.txt`,并且你在命令行中执行 `./test.txt`,那么 `$0` 变量会被设置为 `./test.txt`,同样也会被判断为脚本文件,因为 `*.sh` 通配符可以匹配任何以 `.sh` 结尾的字符串。
如果你想要确保该脚本只判断当前文件是否以 `.sh` 结尾,可以在脚本中添加一些条件来进行限制,例如:
```
#!/bin/bash
if [[ $(basename $0) == *.sh ]]; then
if [[ -f $0 ]]; then
echo "当前文件是一个脚本文件"
else
echo "当前文件不是一个脚本文件"
fi
else
echo "当前文件不是一个脚本文件"
fi
```
其中,`basename $0` 可以获取当前文件名(不包括路径),`-f` 参数可以判断当前文件是否存在。这样,就可以避免误判其他以 `.sh` 结尾的字符串。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)