执行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 这个文件也可以看到

相关推荐
天空之城夢主11 分钟前
KVM高级功能部署
linux·服务器
IT成长日记21 分钟前
【Docker基础】Docker数据卷管理:docker volume ls及其参数详解
运维·docker·容器·volume ls
pipip.2 小时前
UDP————套接字socket
linux·网络·c++·网络协议·udp
zkmall2 小时前
企业电商解决方案哪家好?ZKmall模块商城全渠道支持 + 定制化服务更省心
大数据·运维·重构·架构·开源
云资源服务商4 小时前
解锁阿里云日志服务SLS:云时代的日志管理利器
服务器·阿里云·云计算
绝不偷吃4 小时前
ELK日志分析系统
运维·elk·jenkins
朱包林5 小时前
day45-nginx复杂跳转与https
linux·运维·服务器·网络·云计算
孙克旭_5 小时前
day045-nginx跳转功能补充与https
linux·运维·nginx·https
孞㐑¥6 小时前
Linux之Socket 编程 UDP
linux·服务器·c++·经验分享·笔记·网络协议·udp
Hacker_Oldv7 小时前
软件测试(功能、工具、接口、性能、自动化、测开)详解
运维·自动化