【发布时间】:2021-01-14 13:13:03
【问题描述】:
我正在尝试在我的 macbook-pro 笔记本电脑上运行一个简单的 bash 脚本。最终,我想首先让它适用于 bash 脚本,然后继续我的 python 脚本。我使用以下代码创建了一个简单的 bash 文件(名为 hello.sh):
#!/bin/bash
echo "Hello World" >> /Users/myusername/Desktop/test.txt
而我的crontab -e指定如下:
* * * * * /bin/bash /Users/myusername/Desktop/bash-files/hello.sh
但是,等了一分钟后,我什么也得不到。
谷歌搜索后,我得出结论,也许我遇到了“陷阱”问题(cron 读取的参数与 env 不同)。所以我排队了:
* * * * * env > /tmp/env.output
输出如下
SHELL=/bin/sh
USER=myusername
PATH=/usr/bin:/bin
PWD=/Users/myusername
SHLVL=1
HOME=/Users/myusername
LOGNAME=myusername
_=/usr/bin/env
在我的终端中运行 env 会产生以下相关参数:
SHELL=/bin/zsh
USER=myusername
PATH=/Users/myusername/opt/anaconda3/bin:/Users/myusername/opt/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin
PWD=/tmp
SHLVL=1
HOME=/Users/myusername
LOGNAME=myusername
_=/usr/bin/env
我已将上述参数设置添加到我的 hello.sh 脚本中,但仍然一无所获。
谁能指出我的问题是什么?
【问题讨论】:
-
尝试将脚本和文本文件直接放入
/Users/myusername/。 macOS 有一个奇怪的机制来阻止访问 ~/Desktop 和某些其他目录,所以最好排除它。 -
哇哦,看起来好像执行了我的脚本并生成了文本文件!谢谢!!
-
不能让cron访问~/Desktop及以下级别吗?
-
可能有。由于它似乎是与 bash 或 cron 语法无关的 macOS 特定问题,您可以在 Ask Different 上找到提示
-
与 MacOS 沙盒相关。
标签: bash macos shell command-line cron