如何在crontab上使用env.bashrc变量?

如何在crontab上使用env.bashrc变量?,cron,environment-variables,Cron,Environment Variables,我需要将在我的个人.bashrc中定义的个人env变量$FTP111\u PASSWD发送到crontab执行如何在crontab上设置环境变量? 为执行crontab而创建的名为cron4_etc.sh的原始shell脚本是: #/bin/bash cd/myFolder/ ftp-n-i我最喜欢的解决方案来自,他为一个非常类似的问题提供了以下答案: 在Ubuntu中,在/etc/environment中设置变量也对我有用。从12.04开始,为cron加载/etc/environment中的变

我需要将在我的个人
.bashrc
中定义的个人
env
变量
$FTP111\u PASSWD
发送到
crontab
执行如何在crontab上设置环境变量?

为执行
crontab
而创建的名为
cron4_etc.sh
的原始shell脚本是:

#/bin/bash
cd/myFolder/

ftp-n-i我最喜欢的解决方案来自,他为一个非常类似的问题提供了以下答案:

在Ubuntu中,在
/etc/environment
中设置变量也对我有用。从12.04开始,为cron加载/etc/environment中的变量


有些人建议做一个简单的
env>/etc/environment
来附加所有的环境变量,但我会小心处理,而是手动查看
/etc/environment

嗨,B--谢谢,很好的提示和解释!你能给我看剧本吗?(我将复制/粘贴并测试它,我需要一份完整的“假人配方”)。。需要从
开始/bin/bash
或您必须解释的其他魔法。。。。。在引用的答案页面上,这似乎不是最好的答案,最好的答案是最简单的,并且与UBUNTU 20 LTS一起运行,是一个简单的“添加
-l
选项”,请参见。好吧,我的解决方案实际上并不需要脚本,我只是说,它是我对UBUNTU的首选解决方案,因为它将所有环境变量捆绑在一个位置上
bash-l
也可以工作,我引用的问题的公认答案也是如此。哎呀,@amain记住,在crontab上运行
.bashrc
不是一个好做法。。。因此,您的答案显示了最佳选择和良好实践。我已经测试过了,crontab正在运行
/etc/environment
!您是否查看了和的答案,特别是它解释了在非交互式shell中使用Ubuntu的default.bashrc的陷阱?谢谢@amain,有意义。正确的问题似乎有两个步骤:1。我的
$FTP\u etc\u PASSWD
变量,
.bash\u profile
的最佳位置在哪里?2.如何在我的Crontab脚本中“运行这个地方”。。。还是把最好的放在
/etc/environment
  */20 *     *   *   *     /home/myUser/cron4_etc.sh > /tmp/cron4.log 2>&1
#!/usr/bin/env bash

# set environment
source /home/myUser/.bashrc

cd /tmp/pg_io/PGW
ftp -n -i <<EOF
open 101.111.111.111
user myUser "$FTP111_PASSWD"
mget check_*.log
bye
EOF