Bash

如何在 cron(或者 launchd)用來執行命令的環境中打開 shell?

  • April 4, 2019

我正在嘗試啟動(這是 macOS 的 cron 替代方案)來為我執行工作。它不起作用,而在使用 sudo 啟動的 bash 上執行命令。我嘗試將輸出重定向到文件,但檢查它們也沒有啟發我。我喜歡訪問這個用於執行命令的“原始”環境,這樣我就可以直接在那裡進行實驗,看看缺少什麼。

PS:這是我在啟動作業中執行的腳本(以 root 身份):

#!/usr/bin/env bash
export HOME=/Users/evar
source /users/evar/.bashrc
/Users/evar/anaconda/bin/python /Base/_Code/Misc/hosts/updateHostsFile.py --auto --replace --backup &> /Users/evar/log/hosts.out2
# tmux new -d -s hosts "/Users/evar/anaconda/bin/python /Base/_Code/Misc/hosts/updateHostsFile.py --auto --replace --backup" # I tried this, but sudo tmux kept saying no sessions while logs kept said "duplicate session hosts".

在腳本的開頭,您可以執行類似的操作

env > /tmp/myscriptrun_env.$$

這會將繼承的環境放入/tmp.

現在,您可以從命令行使用該命令env -i /bin/sh生成具有全新環境的新 shell。在此外殼中,您可以創建您創建source/tmp文件。

您可能需要先對其進行編輯並export在每行前面添加以更好地模擬啟動的環境。

引用自:https://unix.stackexchange.com/questions/478718