Agentic Research

This article is not yet available in English. You are reading the Traditional Chinese original. The English edition will appear here once it is translated.

Browse articles that do have an English edition

把指令從網頁貼進終端機:為什麼常常失敗

2026/09/308 min readBryan Chan閱讀中文原文
Topics入門終端機疑難排解

你照著教學做,把一行指令從網頁複製下來、貼進終端機、按下 Enter,然後得到 syntax error 或 command not found。你回去重看教學,指令看起來一模一樣。於是你懷疑自己裝錯了東西,重裝一次 —— 還是一樣。

絕大多數時候,問題不在指令,在「複製貼上」這個動作本身。 網頁上的文字與終端機接受的文字不是同一種東西,中間有四種常見的轉換失敗。四種都有明確的確認方法,不需要猜。

這篇假設你已經會打開終端機。如果還不會,先讀 終端機與 CLI 保命指南。

一、智慧引號:最常見,也最難用眼睛發現

部落格與文件網站常常為了排版好看,把直引號自動換成彎引號。這兩種在螢幕上看起來幾乎一樣,但對終端機來說是完全不同的字元:

你看到的(網頁):  echo "hello"
你貼進去的:        echo “hello”
終端機的理解:      echo 後面接了一個它不認識的字

怎麼確認:把貼好的指令不要按 Enter,先看引號的形狀。直的 " 是對的;彎的 “ ” 是錯的。另一個更可靠的辦法是把它貼進純文字編輯器(不是 Word、不是網頁輸入框),純文字編輯器不會幫你美化,形狀會誠實顯示。

怎麼修:手動把彎引號打掉、重新輸入直引號。終端機裡的引號一定是你自己打的那一組最可靠。

這個坑在 macOS 特別常見,因為系統層級有「智慧引號」自動替換。如果你是在 macOS 的「備忘錄」或某些編輯器裡中轉過指令,很可能在那一步就被換掉了。

二、多行指令被截斷

很多指令在文件裡是這樣呈現的:

curl -fsSL https://example.com/install.sh \
  | bash

那個行尾的 \ 不是裝飾,它的意思是「這一行還沒結束」。複製的時候如果只選到第一行、漏掉 \,或者 \ 後面不小心多了一個空格,終端機就會把它當成兩條指令,第二條 | bash 單獨執行會報錯。

怎麼確認:貼進去之後按 Enter,看提示符有沒有變成 >。變成 > 代表終端機知道指令還沒完,在等你繼續 —— 這是正常的,不是卡住了。這時候剩下的部分貼進去、再按 Enter 就會執行。

怎麼修:整段一起選、一起複製,包含行尾的 \。或者把多行改成一行(去掉 \,中間留一個空格),只要語法允許。

|(管線)開頭的行也是同一個問題:| bash 必須接在前一行之後,不能單獨存在。

三、看不見的空白字元

從某些網頁、PDF、或聊天軟體複製出來的文字會帶著不換行空格(non-breaking space)。它看起來跟普通空格一模一樣,但終端機不認得,會把它當成指令名稱的一部分。

症狀很特徵:你明明打的是 npm install,終端機卻說找不到一個叫 npm install(中間那個不是空格)的命令。

怎麼確認:最可靠的方法是不要複製,改用手打。手打一遍就成功、複製貼上就失敗,那就是空白字元的問題。

怎麼修:手打。指令通常不長,手打十秒鐘比除錯十分鐘划算。

同一類問題還包括:從 PDF 複製時行尾被插入換行、從聊天軟體複製時整段被包在一種特殊的格式化區塊裡。PDF 與聊天視窗是最不可靠的兩個指令來源,能從官方文件網站複製就從那裡複製。

四、貼進了錯誤的 shell 或錯誤的地方

終端機裡跑的程式叫 shell,常見的有 bash、zsh、PowerShell。它們的語法不一樣。同一件事在 macOS/Linux 的 bash 與 Windows 的 PowerShell 寫法不同:

# bash / zsh(macOS、Linux)
export API_KEY="abc123"

# PowerShell(Windows)
$env:API_KEY = "abc123"

把 bash 的寫法貼進 PowerShell 會報錯,反之亦然。這不是哪一邊錯了,是兩種語言。

怎麼確認你在哪一個:

echo $0

在 macOS/Linux 上通常會印出 -zsh 或 -bash。Windows 上如果你開的是「PowerShell」視窗,標題列會寫;如果是「命令提示字元」(cmd),那語法又是第三種。

另一種常見錯誤:你以為自己在終端機裡,其實游標停在某個程式的互動介面裡。例如你已經啟動了某個 AI 工具的對話介面,這時候貼進去的指令會被當成對 AI 說的話,而不是給系統執行的指令。

怎麼確認:看提示符。終端機的提示符通常長得像 user@machine ~ % 或 C:\Users\you>;程式自己的介面通常長得不一樣(可能有 >、>>>、或一個輸入框)。如果不確定,按 Ctrl+C 或輸入 exit 退出當前程式,回到終端機再貼。

一個通用的除錯順序

遇到「照著教學做卻失敗」,按這個順序檢查,不要跳:

  1. 讀最後一行錯誤訊息,不是第一行。最後一行通常才是真正的原因。見 終端機與 CLI 保命指南 的錯誤訊息章節。
  2. 確認你貼進去的文字與教學完全一致 —— 特別是引號形狀與行尾的 \。
  3. 手打一遍。成功了就是複製貼上的問題(空白字元或智慧引號)。
  4. 確認你在對的 shell、對的地方(終端機而不是某個程式的輸入框)。
  5. 以上都不是,才開始懷疑安裝本身。

「重裝一次」幾乎從來不是解法。 如果問題是智慧引號,重裝一百次也還是智慧引號。重裝只是讓你多花十分鐘,並且錯過真正的原因。

為什麼這件事值得單獨講

因為它造成的失敗看起來像你的能力問題,實際上是文字編碼問題。初學者遇到 syntax error 的直覺是「我不會用」,於是放棄或重裝;但真正的原因可能只是一個彎引號。

這類失敗還有一個討厭的性質:它不會告訴你哪裡錯。錯誤訊息會說 syntax error near unexpected token,但不會說「你的引號是彎的」。所以知道這四種可能性存在,比讀懂錯誤訊息更有用。

下一步