編譯時出現問題

編譯時出現問題

我正在學習如何使用你的進行編譯編譯簡易方法指導。但是當我在終端機中運行下面所示的命令時,它會顯示以下錯誤:

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 或登入啟動檔案之一中設定為環境變數。

來源:http://tldp.org/LDP/abs/html/internalvariables.html

答案2

儘管你不必$USER如果您願意,可以手動替換您的用戶名。你只需要把它代替整個“詞” $USER,而不僅僅是USER。也就是說,$在你寫的內容中省略:

sudo chown tejas /usr/local/src

這是因為$在「名稱」表示它是變數的名稱之前,應該取消引用該變量,即用儲存在其中的值替換。USER是保存您的使用者名稱的環境變數。

相反,tejasis (可能)未定義(就已被指派某些值的變數而言)。在 shell 中,在大多數情況下,將未定義的變數視為空變量,即保存空(即零長度)文字字串。所以$tejas被替換為沒有什麼實際運行的命令是sudo chown /usr/local/src,它不起作用。

相關內容