浅谈Bash shell的几种运行模式和cron环境变量导致command not found

本文详细探讨了Bash shell的三种运行模式:登录shell、交互式shell和非交互式shell,强调了环境变量PATH在cron任务中可能导致'command not found'的问题。文章解释了cron的非交互特性导致的PATH限制,并提供了设置环境变量的解决方案,如在脚本开头直接添加PATH或使用source命令加载自定义环境配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

浅谈Bash shell的几种运行模式和cron环境变量导致command not found

参考

Linux shell脚本编程大全

bash的三种运行模式:

不同模式运行,自然加载的环境变量就不同,command not found 就是因为PATH环境变量不正确导致命令找不到,由于cron是一种非登录非交互模式运行,PATH环境变量只有少量的路径

1.登录(login shell)##

用户登录机器获得的shell自然就是登录和交互的shell,想一想,你是不是需要登入,并且你这个shell是不是执行一条命令,它就给你反馈一个结果。

当登入Linux系统时,bash shell会作为登入shell启动。同时会从下面的5个不同的启动文件读取命令:

  1. /etc/profile
  2. $HOME/.bash_profile
  3. $HOME/.bashrc
  4. $HOME/.bash_login
  5. $HOME/.profile

shell会按照按照下列顺序,运行第一个被找到的文件,余下的则被忽略:

  1. $HOME/.bash_profile
  2. $HOME/.bash_login
  3. $HOME/.profile

CentOS Linux系统中的.bash_profi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值