首页 文章

Cron:从shell脚本设置PATH不起作用[复制]

提问于
浏览
0

这个问题在这里已有答案:

我在centOS中编写了一个简单的shell脚本,并从一个cron作业执行 . 我的脚本如下所示:

#!/bin/bash

export PATH=$PATH:$(pwd) 
echo $PATH
echo $PATH| mail -s "PATH" me@gmail.com

如果我直接从终端执行这个脚本,它输出如下:

/sbin:/bin:/usr/sbin:/usr/bin:/vagrant

/ vagrant是我所期待的那个 .

但如果这是从cron作业执行的,它输出(在我的邮件中),如:

/usr/bin:/bin:/root

从cron作业执行时如何正确设置/ vagrant?

更新:我可以将/ vagrant设置为PATH,但它只适用于我 . 如果我将脚本部署到其他用户,则必须创建此目录 . 所以我想让脚本像它一样从它运行的位置导出位置 .

就我而言,我的脚本是从/ vagrant运行的,但是当前目录正在导出为/ root . 这就是问题 .

更新:遗憾的是,路径已正确导出,但报告找不到/ vagrant目录中的文件 .

1 回答

  • 1

    cron 作业在所有者's home directory, so that'中运行 pwd 在运行时产生的结果 . 只需输入您想要的目录即可 .

    PATH=$PATH:/vagrant
    

    顺便说一下,你不能(可靠地)使用Bash语法 export variable=value ,因为Cron运行普通的 sh . 无论如何,应该不需要 export PATH 变量,因为它已经被导出,本来就是(它不能't work if it wasn't) .

相关问题