Ubuntu系统运行docker-build.sh提示command not found如何解决
Ubuntu执行docker-build.sh报command not found解决方法
已经给脚本加了执行权限还是报错,核心原因是Linux默认不会检索当前目录下的可执行文件:出于安全考虑,系统的命令搜索路径PATH默认不包含当前工作目录.,你直接输入docker-build.sh时,系统只会去PATH配置的系统目录、用户二进制目录里找同名命令,自然找不到你当前文件夹里的脚本。
正确执行方式
切到docker-build.sh所在的目录后,带当前路径前缀执行即可:
./docker-build.sh
命令里的
./就是明确指定要运行当前目录下的目标脚本,跳过全局PATH检索。
仍报错的排查项
如果执行上面的命令还是报错,按顺序排查:
- 先执行
ls -l docker-build.sh确认文件确实在当前工作目录,排除cd错文件夹、文件名拼写错误(比如后缀重复写成docker-build.sh.sh、大小写输错)的问题 - 检查脚本首行的shebang配置是否正确,bash脚本首行必须写
#!/bin/bash或者#!/usr/bin/env bash,如果这行写错、或者指向的解释器路径不存在,也会触发command not found报错 - 如果是跨系统拷贝的脚本(比如Windows下编辑后传到Ubuntu),大概率带了Windows的CRLF换行符,执行下面的命令转成Unix格式换行后再运行:
sed -i 's/\r$//' docker-build.sh - 要是你想在任意目录都能直接调用这个脚本,要么写全脚本的绝对路径执行(比如
/home/xxx/project/docker-build.sh),要么把脚本所在目录加到PATH环境变量里(个人临时脚本不推荐这种操作,容易和系统内置命令重名引发异常)
内容的提问来源于stack exchange,提问作者AlirezaTomari
相关产品推荐
相关产品推荐

