if [[ ! -d ./build ]];then mkdir ./build;fi /bin/sh: 1: [[: not found
时间: 2024-01-04 21:03:22 浏览: 24
这是一个 Shell 脚本的语法错误。错误信息提示了一个 `[[: not found`,说明是 `if` 语句中的条件语句出现了错误。`[[:` 是一种扩展的条件测试语句,它需要在 `bash` 或 `zsh` 等支持它的 Shell 中运行。而在其他 Shell 中,如 `sh`、`dash`、`ash` 等,是不支持该语法的。
为了解决这个错误,你可以检查以下几点:
1. 确认当前脚本运行的 Shell 版本是否支持 `[[:` 语法。可以尝试切换到 `bash` 或 `zsh` 等支持该语法的 Shell。
2. 将条件语句修改为支持当前 Shell 版本的语法,如使用单个方括号 `[]` 或双括号 `(( ))`。
3. 检查脚本中是否存在其他语法错误。
相关问题
a@1:/opt$ tar -zxvf /home/a/下载/TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz TensorRT-8.6.1.6/ tar: TensorRT-8.6.1.6:无法 mkdir: 权限不够 TensorRT-8.6.1.6/lib tar: TensorRT-8.6.1.6:无法 mkdir: 权限不够
根据你提供的命令和输出信息,你在尝试解压缩TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz文件到/opt目录中。然而,由于你没有足够的权限,tar命令无法创建TensorRT-8.6.1.6目录和其中的子目录,因此导致解压缩失败。
为了解决这个问题,你可以使用sudo命令提升你的权限,例如:
```
sudo tar -zxvf /home/a/下载/TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz -C /opt
```
这将以管理员权限运行tar命令,并将解压缩后的文件放到/opt目录中。
if [ ! -d "/sharedata/$disk/yili_data/cat_data/$c/" ]; then mkdir -p /sharedata/$disk/yili_data/cat_data/$c/ fi if [ ! -d "/sharedata/$disk/yili_data/hive_data/$c/" ]; then mkdir -p /sharedata/$disk/yili_data/hive_data/$c/ fi if [ ! -d "/sharedata/$disk/yili_data/extra_data/$c/" ]; then mkdir -p /sharedata/$disk/yili_data/extra_data/$c/ fi if [ ! -d "/sharedata/$disk/yili_data/cat_data/$yesterday1/" ]; then mkdir -p /sharedata/$disk/yili_data/cat_data/$yesterday1/ fi if [ ! -d "/sharedata/$disk/yili_data/hive_data/$yesterday1/" ]; then mkdir -p /sharedata/$disk/yili_data/hive_data/$yesterday1/ fi if [ ! -d "/sharedata/$disk/yili_data/extra_data/$yesterday1/" ]; then mkdir -p /sharedata/$disk/yili_data/extra_data/$yesterday1/ fi
这是一个Shell脚本的代码段,用于创建目录。脚本中包含了多个if语句,每个if语句都检查指定的目录是否存在,如果不存在则创建该目录。具体来说,脚本会依次检查以下目录是否存在,如果不存在则创建:
- /sharedata/$disk/yili_data/cat_data/$c/
- /sharedata/$disk/yili_data/hive_data/$c/
- /sharedata/$disk/yili_data/extra_data/$c/
- /sharedata/$disk/yili_data/cat_data/$yesterday1/
- /sharedata/$disk/yili_data/hive_data/$yesterday1/
- /sharedata/$disk/yili_data/extra_data/$yesterday1/
其中,$disk和$c是变量,具体值在脚本其他部分中定义或赋值。$yesterday1则是昨天的日期,也是一个变量。整个脚本的目的是确保这些目录存在,并在必要时创建它们,以便在后续的脚本中使用。