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

相关推荐
wanhengidc4 分钟前
服务器 网络信息安全
运维·服务器·网络
wanhengidc7 分钟前
裸金属服务器都有什么作用
运维·服务器
Harvy_没救了7 分钟前
MySQL主从架构深度解析:原理、优化与实践指南
运维·mysql·架构
CHANG_THE_WORLD8 分钟前
演示宽度数组解析
linux·服务器·前端
安审若无8 分钟前
运维监控及可视化工具Prometheus和grafana
运维·grafana·prometheus
charlie11451419112 分钟前
嵌入式C++教程实战之Linux下的单片机编程(6):从点亮第一盏LED开始 —— 我们为什么要用现代C++写STM32
linux·c语言·开发语言·c++·stm32·单片机
艾莉丝努力练剑13 分钟前
【Linux系统:多线程】线程概念与控制
linux·运维·服务器·c++·后端·学习·操作系统
IMPYLH14 分钟前
Linux 的 mkfifo 命令
linux·运维·服务器·bash
CHS_Lab14 分钟前
DELL服务器阵列崩溃恢复方法
服务器·数据恢复·dell·raid·阵列恢复·戴尔恢复·服务器恢复
M1nat0_17 分钟前
Linux 进程信号:从生活类比到内核原理
linux·运维