我写了一个bash脚本来创建一个调度任务并运行一个django应用程序。我使用Git Bash作为我的终端,并且我已经能够成功地手动运行下面发布的片段中的命令。然而,当我使用这些相同的命令运行bash脚本时,调度任务和django应用程序永远不会运行。为什么在行为上存在差异?我如何在bash脚本中纠正这一点?
#!/usr/bin/env bash
// Create scheduled task
echo schtasks //create //tn my-task //tr '"python app/manage.py loaddata /resources/output.json"' //sc daily //st 09:30 //ri 60 //et 16:00
// Run app
echo python app/manage.py runserver
echo "TERMINATED"
$SHELL
对于从CMD会话(由Windows调度程序触发(运行的bash脚本,您需要:
- 一个名为
git-xxx
的脚本(用您选择的名称替换xxx
( - Windows
PATH
中的脚本(以及Git本身( - 运行
git xxx
的调度任务(注意空格(
这将在Gitbash会话中运行git-xxx
。
另一种选择是,仍然从CMD(或计划任务(运行:
bash -c "/c/path/to/your/script"
在这两种情况下,如果您在Windows10上,并且已经激活了该功能,请确保bash不是WSL中的bash。