跳到主要內容
Cypher's Practical Coding
正在準備工作環境...

環境變數與排程: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 →