
我正在學習如何使用你的進行編譯編譯簡易方法指導。但是當我在終端機中運行下面所示的命令時,它會顯示以下錯誤:
tejas@tejas-AU909AA-ACJ-CQ3120IX:~$ sudo chown $tejas /usr/local/src
chown: missing operand after ‘/usr/local/src’
知道如何克服這個問題嗎?
答案1
您不需要替換$USER
為您自己的會話登入名稱 (tejas),因為此變數已包含「tejas」。
所以正確使用的指令是:
sudo chown $USER /usr/local/src
變數$ENV
、$LOGNAME
、$MAIL
、$TERM
、$USER
和$USERNAME
不是 Bash 內建變數。然而,這些通常在 Bash 或登入啟動檔案之一中設定為環境變數。
答案2
儘管你不必$USER
如果您願意,可以手動替換您的用戶名。你只需要把它代替整個“詞” $USER
,而不僅僅是USER
。也就是說,$
在你寫的內容中省略:
sudo chown tejas /usr/local/src
這是因為$
在「名稱」表示它是變數的名稱之前,應該取消引用該變量,即用儲存在其中的值替換。USER
是保存您的使用者名稱的環境變數。
相反,tejas
is (可能)未定義(就已被指派某些值的變數而言)。在 shell 中,在大多數情況下,將未定義的變數視為空變量,即保存空(即零長度)文字字串。所以$tejas
被替換為沒有什麼實際運行的命令是sudo chown /usr/local/src
,它不起作用。