生活分享
codex exec 與腳本整合
codex exec 在非互動模式執行一次任務,適合腳本與 CI。預設一般輸出把進度放 stderr、最後回答放 stdout;--json 改成逐行 JSON 事件,不能把整份輸出當成單一 JSON 物件解析。
閱讀時間約 15 分鐘 · 操作 20 分鐘

返回 Codex 教學總目錄Codex 學習中心:完整教學目錄從安裝、第一個任務到 MD 規則與進階整合,規劃 60 篇 Codex 教學、十個單元。依程度、平台、需求或指令搜尋下一篇;尚未公開的教學會標示狀態,方便安排學習路線。閱讀全文
目標與準備
本段提到的教學與資源: CLI 安裝與登入Codex CLI 安裝與入門選擇自己的安裝平台,完成 CLI 登入、唯讀檢查、單行修改、獨立驗證與工作階段接續。包含可重做的兩檔練習與缺檔測試。閱讀全文
步驟 1:認識執行入口
codex exec 是終端機命令,不是桌面聊天的斜線指令。Windows 在 PowerShell 執行;macOS 的 Terminal 與 Linux 的終端機執行相同 CLI。若用 WSL,就在 WSL 裡安裝與登入後執行,不能把 Windows 的登入狀態視為已同步。桌面與 IDE 可開終端機執行;手機畫面上的對話不是這個本機程序,必須有能執行 CLI 的電腦或受控遠端環境。各系統先執行以下兩行,確認本機版本提供本文旗標,再繼續。
codex --version
codex exec --help
| 介面 | 本篇內容 | 用法 |
|---|---|---|
| 終端機 | codex exec | 啟動一次非互動工作 |
| 提示詞參數 | Read tasks.md… | 告訴代理工作目標 |
| stdout | 最後答案 | 可存成文字檔 |
| stderr | 過程與診斷 | 有文字不等於失敗 |
| 退出狀態 | 整數 | 0 代表程序成功結束,仍需驗證答案 |
JSON/JSONLJSON 輸出與結果驗證區分事件串流與最終結果,解析結構化輸出並拒絕缺欄位或錯誤格式。閱讀全文 篇會切換 stdout 的格式;此處先保持普通文字。不要以診斷檔是否空白、回答是否寫著 Done,替代退出狀態與內容檢查。
步驟 2:建立獨立輸入
在自己的練習位置建立全新的 exec-lab 資料夾,再以編輯器開啟它。若同名資料夾已有資料,改用另一個空白名稱。新增 UTF-8 的 tasks.md,內容完整如下。不要使用正式專案、私有日誌或整個使用者目錄;一份小而可人工核對的清單就能練習輸入與輸出。接著在這個資料夾的終端機初始化 Git;本文不需要提交、遠端或 GitHub 帳號。
# Practice tasks
Revision: exec-practice-1
- [x] Read the guide
- [ ] Create a practice file
- [ ] Verify the result
git init
git status --short
預期看到 tasks.md 是未追蹤檔案。Git 初始化只是滿足 CLI 工作目錄檢查,沒有把檔案上傳。先人工記下版本 exec-practice-1、總數 3、完成 1、未完成 2。不要把這些答案直接寫進下一步提示詞,才能檢查它是否真的讀到資料。若目前資料夾有其他檔案,先用路徑教學終端機與路徑:找到專案根目錄在 Windows、macOS、Linux 建立練習資料夾,確認目前目錄並辨識相對與絕對路徑。閱讀全文確認自己位於哪裡。
步驟 3:保存輸出並立刻記下退出狀態
以下兩組選自己系統的一組,執行前確認 report-01.md、stdout-01.txt、stderr-01.log 不存在;macOS/Linux 也要確認 tasks-before.md 尚不存在;第二次練習改用 02,避免把舊答案誤認為新成功。唯讀沙盒限制代理的修改權限,shell 重新導向與 -o 仍會寫出指定報告,這正是本篇要保存的產物。--ephemeral 不保留工作階段檔,仍不代表不會使用帳號額度或不會產生這三份檔案。
$practiceBefore = (Get-FileHash -LiteralPath tasks.md -Algorithm SHA256).Hash
codex exec --sandbox read-only --ephemeral -o report-01.md 'Read tasks.md. Report its revision and the total, completed and pending checkbox counts. Do not edit input files or use external tools.' 1> stdout-01.txt 2> stderr-01.log
$practiceExit = $LASTEXITCODE
$practiceExit
Get-Content -LiteralPath report-01.md
$practiceBefore -eq (Get-FileHash -LiteralPath tasks.md -Algorithm SHA256).Hash
cp tasks.md tasks-before.md
codex exec --sandbox read-only --ephemeral -o report-01.md 'Read tasks.md. Report its revision and the total, completed and pending checkbox counts. Do not edit input files or use external tools.' > stdout-01.txt 2> stderr-01.log
practice_exit=$?
printf '%s\n' "$practice_exit"
cat report-01.md
cmp tasks-before.md tasks.md
提示詞中的 external tools 指外部服務;Codex 可以用本機讀檔工具讀取 tasks.md。退出狀態要在下一個原生命令之前保存,否則可能變成另一條命令的狀態。成功時檢查三件事:狀態為 0、報告含正確版本與 3/1/2、原始檔相同。PowerShell 最後一行應為 True;macOS/Linux 的 cmp 無輸出且退出 0 表示相同。若報告語言或句型不同,只要數值和依據正確就接受,不要求逐字一樣。
步驟 4:確認失敗不會被當成答案
codex exec --sandbox invalid 'Read tasks.md'
這一行應在解析參數時被拒絕,不會取得新的模型答案。PowerShell 緊接著輸入 $LASTEXITCODE;macOS/Linux 緊接著輸入 echo $?,應為非 0。此時上一輪的 report-01.md 可能仍存在,但不能拿來宣稱本輪成功。修正為 read-only 後若要重跑,用新的輸出檔名並重新記錄狀態。不要為了消除錯誤改成略過權限或沙盒;參數錯誤、登入錯誤、額度不足與輸入不存在應分別處理。
將結果記成兩列:第一次唯讀工作填實際輸出檔名、退出碼與計數;無效旗標那列填「參數解析失敗,未產生新答案」。查看舊 report-01.md 的內容仍在,只能證明舊檔保留,不能填入第二列的成功欄。若第一輪尚未真的呼叫模型,就留為未執行,仍可獨立完成無效旗標練習。
常見問題、還原與下一步
找不到 codex 時回到安裝篇查 PATH,不在這裡反覆登入。出現 Git 工作目錄錯誤就確認 exec-lab 及 git status,不直接略過檢查。登入或用量錯誤先用 codex login status 查看登入狀態,再依帳號與額度帳號、登入、方案與額度先確認登入方式,才能判斷用量扣在哪裡。ChatGPT 帳號登入使用方案提供的 Codex 額度;以 API key 使用支援的客戶端則需要另行確認 API 帳務。這篇不固定寫入容易過期的價格或訊息上限,而是教你找到自己帳號的有效資訊。閱讀全文查對應入口;不要公開診斷裡的憑證、使用者路徑或私人提示詞。若要求互動授權導致無法繼續,先回互動模式確認必要權限,再決定如何縮小非互動工作的範圍。
最後保留本輪退出狀態與核對結果,重新開啟 tasks.md 確認內容。若要清理,用檔案管理員逐一選取自己建立的 report、stdout、stderr,以及 macOS/Linux 的 tasks-before.md;不要刪除整個專案目錄或使用清除全部未追蹤檔的指令。你已完成一次可核對的唯讀執行;下一篇把同樣任務改成有欄位驗證的結構化輸出,之後才接入 CI把 Codex 接入 CI 工作流程設計有明確輸入、權限與退出狀態的 CI 工作,保存產物並區分建議與正式套用。閱讀全文。本文旗標依官方文件及列出的 CLI help 核對;不把參考腳本通過當作每個讀者帳號已成功執行模型。
返回 Codex 教學總目錄Codex 學習中心:完整教學目錄從安裝、第一個任務到 MD 規則與進階整合,規劃 60 篇 Codex 教學、十個單元。依程度、平台、需求或指令搜尋下一篇;尚未公開的教學會標示狀態,方便安排學習路線。閱讀全文
閱讀完整文字說明
Prompt to codex exec to JSONL / report
同主題延伸閱讀
生活分享
Codex 學習中心:完整教學目錄
從安裝、第一個任務到 MD 規則與進階整合,規劃 60 篇 Codex 教學、十個單元。依程度、平台、需求或指令搜尋下一篇;尚未公開的教學會標示狀態,方便安排學習路線。
生活分享
Worktree 與多任務隔離
Worktree 讓同一個 Git 程式庫有不同的工作目錄,各自承接不同分支。它適合讓兩項工作分開改檔,但資料庫、連接埠與外部服務仍可能共用,不能把檔案隔離當成所有資源隔離。
生活分享
實戰:製作小網站
從 brief.md 規劃並製作 Small Steps 待辦網站,完成新增、完成、刪除、篩選與本機資料保存。將 HTML、CSS、資料函式、畫面事件與測試分開,以 Node 測試和瀏覽器操作驗收,並留下可重新啟動與還原的交接紀錄。
生活分享
用量與效率:減少重工
記錄任務條件、模型選項、時間與成果,找出能減少無效重試和過多上下文的調整。
引用本文的文章
最新旅遊情報攻略

情報
2026 韓國楓葉預測:雪嶽山 10 月 20 日、首爾近郊 10 月底、內藏山與漢拏山 11 月上旬
韓國山林廳 2026 年 9 月 22 日公布的楓紅高峰預測:雪嶽山 10 月 20 日,春川、國立樹木園到首爾植物園落在 10 月 28 日到 11 月 2 日,內藏山 11 月 4 日、漢拏山 11 月 6 日,整體比最近 5 年晚約 0.8 天。整理各地楓樹與銀杏的預測日、首爾出發怎麼排,以及出發前去哪裡看即時楓況。2026 年 10 月查證。
- 季節活動
- 自然
- 觀景

攻略胡志明市
胡志明市到頭頓一日遊:白藤碼頭搭高速船、船票與班次,下船就是胡梅纜車與耶穌基督像
人在胡志明市挪一天去頭頓看海:市中心的白藤高速船碼頭搭船,航程 120 分鐘到頭頓的胡梅碼頭,平日成人 320,000 越南盾、週末 350,000,回程末班平日 15:00。下船就是胡梅纜車站,同一條路上有白宮,小山頂上是耶穌基督像。平日一天只有兩班船,整天要從末班船倒推著排。
- 交通
- 行程範例
- 海灘

攻略沖繩
沖繩不開車攻略:單軌只到浦添,美麗海水族館要坐兩個多小時的巴士,回那霸的最後一班直達車 17:22 就開走
不租車的沖繩怎麼移動:那霸市區靠沖繩都市單軌電車(ゆいレール),那霸機場站到終點てだこ浦西 19 站、17 公里、37 分鐘,一日券 1,000 日圓;美麗海水族館有那霸機場直達的高速巴士,單程 2,000 日圓起、官方時刻表上 2 小時上下,下車後還要走 10 分鐘;古宇利島要在今帰仁村役場轉車,當天來回光坐車就六個半小時;回程的最後一班直達車 17:22 就從記念公園前開走(2026 年 9 月查證)。
- 交通
- 行程範例
- 預算
資料來源
- Codex non-interactive mode · 查證日期:
- CLI command reference · 查證日期: