正在準備工作環境...
環境變數與排程:API Key 不能寫死在 script 裡
你寫好了 Shell Script,但 API Key 直接寫在程式碼裡?同事一看到 git log 就知道你的密碼了。環境變數就是解決這個問題的標準做法。再加上 cron 排程,你的 script 就能每天自動跑。
你會學到什麼
- 用
export設定環境變數 - 用
.env檔案管理設定 - 用
source載入環境變數 - cron 排程語法
- 用
crontab -e設定排程
觀念速記
- 環境變數 = 系統層級的「設定值」,任何程式都能讀取。
.env檔案 = 把環境變數集中管理,不放進版本控制(加到.gitignore)。source .env= 把.env裡的變數載入到目前的 Shell。- cron = Linux/Mac 內建的排程工具,可以設定「每天幾點跑什麼指令」。
環境變數基礎
.env 檔案管理
在 Script 中使用 .env
cron 排程語法
cron 使用五個欄位表示時間:
┌───────── 分鐘 (0-59)
│ ┌─────── 小時 (0-23)
│ │ ┌───── 日 (1-31)
│ │ │ ┌─── 月 (1-12)
│ │ │ │ ┌─ 星期幾 (0-7,0 和 7 都是週日)
│ │ │ │ │
* * * * * 指令
常用範例:
| cron 語法 | 意思 |
|---|---|
0 9 * * * | 每天早上 9:00 |
30 8 * * 1-5 | 每週一到五早上 8:30 |
0 */2 * * * | 每 2 小時 |
0 9 1 * * | 每月 1 號早上 9:00 |
*/15 * * * * | 每 15 分鐘 |
設定 cron 排程
實戰:完整自動化流程
把前幾課學到的全部串起來——一個自動排程的每日報表系統:
cron 小提醒:cron 執行環境跟你手動跑不同,路徑要用絕對路徑。Script 裡的
source .env也要改成source /home/user/.env。這是新手最常踩的坑。
AI 協作:學了這個,跟 AI 怎麼配合?
環境變數和排程是自動化的最後一哩路。AI 可以幫你寫 cron 語法,你負責確認排程時間和環境設定。
你的人類優勢:
- 你知道報表要幾點產出、寄給誰(這是業務決策)
- 你能確認 .env 的值是正確的(API Key 有沒有過期)
可以這樣跟 AI 說:
我有一個 shell script 要每天早上 9 點和下午 6 點各跑一次,只在平日(週一到五)執行,log 輸出到 ~/logs/ 底下並用日期命名。幫我寫 cron 排程。
小練習
互動示範
DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩
DEMO 3可以修改程式碼試玩
DEMO 4可以修改程式碼試玩
DEMO 5可以修改程式碼試玩
挑戰任務
Task 1
設定環境變數 GREETING 為 Hello,然後用 echo 印出來
Task 2
建立一個 .env 檔案包含 APP_NAME="MyShop",然後 source 它並印出 APP_NAME
Task 3
寫出 cron 語法:每天早上 9 點執行 /home/user/report.sh(只要寫出 cron 時間部分)
← BackTake the Exam →