linux文件无法执行

linux 自己编写的abc.sh文件不能直接执行,需要加sh 或者 ./abc.sh才能执行,在文件目录下 输入abc按tab也无法找到这个文件,请问是什么原因呢?

是否文件权限不对 贴出来

chmod 777 abc.sh

加上可执行权限,chmod +x abc.sh

文件权限 -rwxrwxr-x

看下相同目录是否有abc开头的其他文件,点两下tab 会提示的

./abc.sh可以执行,文件有运行权限,至于为什么要用./ 因为在环境变量中没有名为 abc.sh 的命令;输入abc按tab不能自动补全最大的可能就是有2个以上abc开头的文件,这些都是基础,不懂的地方多百度

Linux下执行文件本来就是 ./文件名 或者文件的全路径
直接输入 abc 按tab系统默认识别命令,而不是当前目录下的文件

假如你一定要 输入 abc就能执行该文件,请将abc.sh丢到 /usr/local/bin目录下并改名为abc,同时注意文件是否有运行权限

# 移动文件,并改名为abc
mv ./abc.sh /usr/local/bin/abc
# 运行
abc