我正在尝试使用cron运行一些adb命令。在运行cron时,我希望它在默认的shell环境下运行,而不是在用户的环境下运行,这就是为什么我在设置cron时按如下方式提供要添加到PATH中的adb文件的路径。但是,从输出中可以看到,cron无法找到adb。
我用来设置crontab的命令
sudo crontab -u mcj -e
Crontab
cron_script.sh
#!/usr/bin/env bash
export PATH=$PATH:/usr/local/bin/adb
export PATH=$PATH:/Users/mcj/bin/darwin/adb
adb_path="$(which adb)"
echo "adb path: "$adb_path
echo "path: "$PATH
echo "home: "$HOME
输出
adb path:
path: /usr/bin:/bin:/usr/local/bin/adb:/Users/mcj/bin/darwin/adb
home: /Users/mcj
如果我使用终端并尝试按以下方式运行哪个adb,它会找到adb路径
Milin'sMacBook:~ mcj$ which adb
/usr/local/bin/adb
答案 0 :(得分:1)
根据您的“哪个”输出,adb命令是/ usr / local / bin目录中的文件。 $ PATH变量需要目录,而不是实际的可执行文件。
简而言之,您的PATH应该是:
export PATH=$PATH:/usr/local/bin