生活分享
Claude Code|非互動執行與 JSON 輸出
用單次指令、管線與結構化輸出建立腳本。claude -p 讓你把一次任務放進腳本,由程序輸入提示並接收結果。本篇會先取得文字輸出,再保存 JSON 結果,最後使用 JSON Schema 要求固定欄位。你會同時檢查退出碼與結果內容,避免把一份存在的輸出檔誤認為執行成功。
閱讀時間約 5 分鐘

claude -p 讓你把一次任務放進腳本,由程序輸入提示並接收結果。本篇會先取得文字輸出,再保存 JSON 結果,最後使用 JSON Schema 要求固定欄位。你會同時檢查退出碼與結果內容,避免把一份存在的輸出檔誤認為執行成功。
先完成CLI 基礎Claude Code|CLI 指令入門與分類索引分辨終端機指令、啟動參數與斜線指令。學 Claude Code 指令,第一步是分清楚輸入位置。終端機命令啟動或管理程式,啟動參數調整這一次執行,對話內的斜線指令則操作目前工作階段。本篇會建立一份分類索引,帶你完成查說明、啟動、命名與找回的小練習,避免把所有文字都貼到同一個框。閱讀全文,準備已登入的 CLI 與只含假資料的工作目錄。本篇前兩個範例使用目前正常登入方式;API 與訂閱用量依認證方式不同,執行前先理解帳號計費Claude Code|帳號、登入與使用資格分清訂閱登入、API 計費與組織帳號。Claude Code 的登入方式會影響你可以使用的入口、費用來源與組織管理規則。一般讀者最需要先分清楚:Claude 帳號的訂閱使用方式,和 Claude Console/API 的計費方式是不同選擇。不要因為已經能在網頁聊天,就直接假設每個 Code 功能都已開通,也不要把 API 金鑰貼進對話來證明自己有帳號。閱讀全文。
非互動不代表沒有副作用
閱讀完整文字說明
非互動執行與 JSON 輸出,以流程和文件圖形呈現教學重點。
-p 是非互動執行入口,並不等於沙盒或只讀模式。正常模式仍會載入工作目錄及使用者設定中的部分規則、Hooks、Skills代理技能(Agent Skills)是什麼:可重用的工作方法包Agent Skills 是把工作指示、參考資料與可選腳本放進資料夾的開放格式,讓相容代理在需要時載入特定做法。本文用社區月報整理的情境,說明 SKILL.md、名稱與描述、逐步載入及附屬資源的角色,分清技能、系統提示詞、MCP 和 A2A。附內容設計與驗收方法,幫你判斷技能是否真的可重用,而不是只把長提示詞換個檔名。閱讀全文、外掛與 MCP模型上下文協定(MCP)是什麼:連接工具與資料的共同介面MCP 是讓 AI 應用程式與外部工具、資料和提示範本交換資訊的開放協定,不是模型本身,也不保證接上就能完成任務。本文用查詢社區圖書室資料的例子,說明主機、用戶端、伺服器及工具、資源、提示的分工,並比較 MCP、A2A 與 Agent Skills。附連線驗證與權限檢查方法,幫你區分已設定、已連接、可呼叫與真正取得結果。閱讀全文,且不會出現一般互動式工作區信任提示。因此先選乾淨練習目錄並檢查設定。
--bare 可用於減少自動載入,但查證時它不使用訂閱登入,需另備 API 認證。不要只為了省事加上 --bare,卻不知道為何突然登入失敗。本篇用 --tools 限制可用工具,並清楚說明這不會替代對啟動設定的審查。
先執行一次純文字任務
claude -p "請用一句繁體中文解釋待辦清單,不使用工具。" --tools ""
預期程序輸出一句說明後退出。若出現認證錯誤,先回互動 CLI 確認登入;若參數模型參數(Model Parameters)是什麼模型參數是訓練時調整、用來把輸入轉成輸出的數值,例如權重與偏差。本文用簡單算式示例說明參數如何影響預測,區分模型參數、訓練超參數、提示詞與生成設定,並解釋參數量、數值精度和啟用參數為何是不同指標。讀完能更準確閱讀模型規格,理解參數增加不等於知識逐條增加,也不代表每次聊天都在重新訓練模型。閱讀全文不支援,查看 claude --help 與版本。非互動模式沒有等你在對話中補充資訊的正常流程,所以提示要一次提供必要背景。
成功退出碼應為零,失敗為非零。錯誤可能出現在標準錯誤,也可能以結果訊息出現在標準輸出;不能只搜尋 stderr 是否為空。後續腳本應保留兩個通道,並明確檢查退出狀態。
保存 JSON 回應
claude -p "將買牛奶、整理桌面整理成簡短清單,不使用工具。" --tools "" --output-format json 1> result.json 2> error.log
$runExit = $LASTEXITCODE
if ($runExit -ne 0) { throw "Claude 執行失敗,請查看 result.json 與 error.log" }
$response = Get-Content -Raw result.json | ConvertFrom-Json
$response.result
claude -p '將買牛奶、整理桌面整理成簡短清單,不使用工具。' --tools '' --output-format json > result.json 2> error.log
run_exit=$?
if [ "$run_exit" -ne 0 ]; then
echo 'Claude 執行失敗,請查看 result.json 與 error.log'
fi
--output-format json 回傳外層結果與 metadata,文字通常放在 result 欄位,不代表 result 本身一定是 JSON 物件。要固定業務欄位,下一步才加入 --json-schema。session ID、用量等外層欄位也應保留供診斷。
加入結構化輸出要求
下面 Bash 範例要求 tasks 是字串陣列。它把完整資料直接放在提示中,不讀取檔案,因此 --tools 保持空值。JSON Schema 定義欄位結構,不能保證文字內容符合所有商業規則,仍需程式核對。
claude -p '將買牛奶與整理桌面整理成 tasks,保留原文字,不使用工具。' --tools '' --output-format json --json-schema '{"type":"object","properties":{"tasks":{"type":"array","items":{"type":"string"}}},"required":["tasks"],"additionalProperties":false}' > structured.json
Windows 不同 PowerShell 與原生程式參數傳遞方式,可能影響含雙引號的 JSON。若複雜 schema 反覆被 shell 改寫,先使用Agent SDKClaude Agent SDK 入門用最小程式執行一次可驗證的代理工作。Claude Agent SDK 讓你用程式啟動代理工作、接收訊息與處理結果。本篇使用 Node.js 與 JavaScript 建立一個只讀代理,讀取自己的 notes.txt 並列出待辦事項。成果是一個可執行程式、明確的時間與回合限制,以及成功和失敗分開的處理方式。閱讀全文的結構化參數,或以程式的參數陣列啟動 CLI,不要靠不斷加入反斜線猜測。
成功時讀取外層 structured_output,而不是只解析 result 字串。檢查 tasks 長度為二、兩個項目都存在、沒有多餘欄位。格式合法仍可能內容錯誤,例如少一項待辦;這就是需要另外驗證業務條件的原因。
透過輸入管線提供文字
先建立 notes.txt,放入可公開的練習文字,再以管線傳入。標準輸入是任務資料,不應混入權杖或整份私人資料夾輸出。內容中若出現命令文字,提示也要要求把它當成資料而不是新的操作指示。
Get-Content -Raw notes.txt | claude -p "摘要輸入文字,保留待辦項目;不使用工具。" --tools ""
cat notes.txt | claude -p '摘要輸入文字,保留待辦項目;不使用工具。' --tools ''
需要讀取檔案工具時,可以明確設定 --tools 與 --allowedTools;前者控制可用工具,後者是預先授權,不能當成只允許清單的同義詞。不要用跳過所有權限的參數處理一般自動化排錯。
自動化程式也應限制輸入大小,避免不小心把巨大紀錄或整份資料庫輸出送入模型。先統計需要的段落與欄位,再傳遞最小材料;保存輸入版本或摘要識別資訊,讓結果可以對應回當時資料。
需要多次處理時,為每次執行產生自己的輸出檔名與工作識別碼,不覆蓋上一份尚未審查的結果。遇到失敗先保存原始回應,再重試;如果只留下最後一次成功檔,可能失去最有用的錯誤證據。
結構化輸出中的字串仍是模型產生內容,不能直接拼成命令或資料庫查詢。即使 schema 通過,也要使用程式自己的允許值與業務驗證,確認結果符合下一個操作的輸入條件。
停止、限制與錯誤紀錄
互動終端機中可用 Ctrl+C 中止,腳本或工作管理器則應有合理逾時並處理子程序。被中止的執行可能沒有完整結果,不能把部分文字當成最終答案。需要長期執行服務時,也不應依賴 -p 產生的背景 shell 永遠存活。
| 症狀 | 檢查重點 | 處理方式 |
|---|---|---|
| JSON 檔存在但解析失敗 | 程序退出碼與輸出內容 | 先判斷失敗結果,不直接匯入 |
| result 不是物件 | 只使用 output-format | 加入 schema 並讀 structured_output |
| schema 不合法 | 引號或 schema 結構 | 用最小範例驗證,再逐欄增加 |
| 非互動工作卡住 | 工具權限或背景工作 | 查看紀錄、縮小範圍並設定逾時 |
小練習是用兩項待辦產生 JSON,程式檢查退出碼、欄位與內容,再故意使用不合法 schema 觀察失敗。完成判準是成功與失敗有不同處理路徑,原始紀錄被保存,而且沒有因輸出格式需求而擴大工具權限。
準備好練習完整流程時,接著閱讀JSON 自動化流程Claude Code|把 claude -p 接進有驗證的 JSON 流程處理合法結果、錯誤、逾時與不完整輸出。這次輸出只要兩個欄位:summary 是非空的繁體中文摘要,taskIds 是不重複的待辦識別碼陣列。先把契約寫清楚,才能決定什麼資料不應往下傳。如果只是要求「回傳 JSON」,模型即使回傳一個空物件,語法上仍是合法 JSON,卻不能完成工作。閱讀全文,使用獨立材料進行故障重現與成果驗證。
回 Claude Code 教學總目錄Claude Code 完整教學目錄:從入門到自動化依平台、程度與功能找到需要的教學,從 96 篇文章與共用練習專案逐步完成操作。這個教學中心把 Claude Code 分成 96 個可以獨立閱讀的小題目,從桌面、CLI、網頁與手機開始,再學 MD 規則、常用指令、Skills、MCP 與自動化。你可以依推薦路線循序學習,也可以直接搜尋正在遇到的功能、命令或檔名。目錄依目前公開狀態顯示可閱讀文章。閱讀全文
同主題延伸閱讀
生活分享
Claude Code|建立第一個 mod:在 Claude Code 行程內數工具呼叫
寫一個三檔案的 mod,用驗證器與測試確認它掛上的事件。文件把 mod 定義成多了入口檔的 plugin:入口檔叫 hooks module,Claude Code 在事件發生時呼叫裡面的函式,函式可以觀察、改寫或接手事件。
生活分享
Claude Code|Git Worktree 平行工作
隔離多個任務的檔案與分支。Git Worktree 讓同一儲存庫擁有多個工作目錄,各自使用分支與檔案。本篇會把待辦篩選與文件整理分開,確認兩個 session 不會直接改到彼此的檔案,再把其中一個成果整合回主分支。你也會知道何時可以安全清理工作目錄。
生活分享
Claude Code|雙 Worktree 實作與衝突整合
隔離兩項功能,最後完成整合與回歸。兩個 Claude 工作階段同時編輯專案,最容易出現的問題是互相改到同一份檔案,或各自測試通過、整合後卻失敗。本篇用兩個 Worktree 分別處理篩選預設值與介面文字,故意製造一次小衝突,再完成整合、驗證與清理。你不需要先啟用 Agent Teams。
生活分享
Claude Code|比較流程品質、用量與執行時間
以同一資料集比較兩種工作方法。比較兩種 Claude 工作方法時,不能只挑成功那一次,也不能只看第一個答案有多快。本篇用固定案例、原始紀錄和一致判準,比較品質、重試、等待與人工整合時間,最後寫出有樣本數與限制的報告,而不是保證某個方法一定省錢。
引用本文的文章
最新旅遊情報攻略

情報
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 月查證)。
- 交通
- 行程範例
- 預算
資料來源
- Run Claude Code programmatically · 查證日期:
- CLI reference · 查證日期: