컴파일 중 문제

컴파일 중 문제

나는 당신을 사용하여 컴파일하는 방법을 배우고 있습니다컴파일하기쉬운 방법가이드. 그러나 터미널에서 아래 표시된 명령을 실행하자마자 다음 오류가 표시됩니다.

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원할 경우 을 수동으로 사용자 이름으로 대체 할 수 있습니다. 그냥 넣으시면 됩니다대신에단지 .$USERUSER즉, 다음과 $같이 작성하는 내용을 생략하세요.

sudo chown tejas /usr/local/src

이는 $"이름"이 변수의 이름을 나타내기 전에 변수를 역참조해야 한다는 것, 즉 변수에 저장된 값으로 대체되어야 하기 때문입니다. USER사용자 이름을 보유하는 환경 변수입니다.

대조적으로, tejasis는 (아마도) 정의되지 않았습니다(일부 값이 할당된 변수라는 의미에서). 쉘에서 정의되지 않은 변수는 대부분의 경우 비어 있는 것처럼 처리됩니다. 즉, 빈(즉, 길이가 0인) 텍스트 문자열을 보유합니다. 그래서 $tejas다음으로 대체됩니다.아무것도 아님실제로 실행되는 명령은 sudo chown /usr/local/src작동할 수 없는 입니다.

관련 정보