执行shell脚本时为什么要写成./test.sh,而不是test.sh?

  • 一定要写成 ./test.sh,而不是 test.sh

  • 运行其它二进制的程序也一样!

  • 直接写 test.sh,linux 系统会去 PATH (系统环境)里寻找有没有叫 test.sh 的!

  • 而只有 /bin, /sbin, /usr/bin,/usr/sbin 这些路径是写在了PATH 里!

  • 你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,执行 ./test.sh 就是告诉系统说,就在当前目录找test.sh然后执行它!

你可以用这条命令查看一下你系统的PATH都有哪些

bash 复制代码
echo $PATH

或者打开/etc/profile 这个文件也可以看到

相关推荐
hexu_blog34 分钟前
Linux centos 安装向量数据库milvus
linux·centos·milvus
code monkey.2 小时前
【Linux之旅】Linux 应用层自定义协议与序列化:从粘包问题到网络计算器
linux·网络·c++
wgc2k2 小时前
Node.js游戏服务器项目移植-2: 用TypeScript还是Javascript
服务器·游戏·node.js
草莓熊Lotso2 小时前
【Linux网络】深入理解 HTTP 协议(二):从协议格式到手写工业级 HTTP 服务器
linux·运维·服务器·网络·c++·http
上海云盾第一敬业销售3 小时前
服务器遭受攻击的应对策略及快速防护实践
运维·服务器·web安全·ddos
剑神一笑8 小时前
Linux pgrep 命令详解:按名称查找进程 PID 的高效方法
linux·运维·chrome
Lumbrologist8 小时前
【零基础部署】Docker 部署 CrewAI 多 Agent 编排框架保姆级教程
运维·docker·容器
yyuuuzz8 小时前
独立站的技术基础与常见运维问题
大数据·运维·服务器·网络·数据库·aws
剑神一笑8 小时前
Linux killall 命令详解:按进程名批量终止进程的原理与实践
linux·运维·chrome
雅菲奥朗9 小时前
企业级 AI 自动化|OpenClaw 龙虾实战与认证
运维·人工智能·自动化·openclaw