나는 당신을 사용하여 컴파일하는 방법을 배우고 있습니다컴파일하기쉬운 방법가이드. 그러나 터미널에서 아래 표시된 명령을 실행하자마자 다음 오류가 표시됩니다.
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는 (아마도) 정의되지 않았습니다(일부 값이 할당된 변수라는 의미에서). 쉘에서 정의되지 않은 변수는 대부분의 경우 비어 있는 것처럼 처리됩니다. 즉, 빈(즉, 길이가 0인) 텍스트 문자열을 보유합니다. 그래서 $tejas
다음으로 대체됩니다.아무것도 아님실제로 실행되는 명령은 sudo chown /usr/local/src
작동할 수 없는 입니다.