SHELL=/usr/bin/bash
HOME=/mycluster/home/mygroup/myuser
PATH=$HOME/miniconda3/envs/py310simple/bin:$HOME/miniconda3/envs/py310simple/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/
我实际上有很多物品从我的路上开始,从我的路上开始,这被缩短了可读性。现在,在cronjob中,似乎没有扩展
$HOME
变量,导致内部的事物实际上没有在路径上。为什么?我该如何解决这个问题?我不想为我想走上的每个目录手动扩展(并维护)
$HOME/miniconda3/envs/py310simple/bin
a
HOME
是crontab
的指令列表,它不是shell脚本(
cron
或其他shell的指令列表),所以实际上我很惊讶地在为什么包含一个。”。 /. profile“在unix的crontab条目中?
bash
bar
我要么:
创建了一个名为shell脚本
cron
设置这些变量,然后调用foo
使用
bar
直接在foo
中,所以我从bar
cron
,将shell变量设置在
bash -c 'SHELL=...; HOME=...; PATH=...; bar'
壳中,然后从同一shell调用
crontab
。crontab文件不是外壳脚本,它是一个crontab文件。
能够在crontab文件中设置环境变量的能力,因为它看起来有点像壳语法,但不是真正的shell,因此$ home并没有扩展,其他shell shell替换也不是。
在crontab中占用自己
bash
在执行行上输入shell变量:
cron
bash
bar
在单独的源文件中输入变量:
PATH=/home/miniconda3/envs/py310simple/bin:/home/miniconda3/envs/py310simple/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/
0 10 * * * my-command with my-args here
0 10 * * * PATH=$HOME/miniconda3/envs/py310simple/bin:$HOME/miniconda3/envs/py310simple/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/ my-command with my-args here