Я учусь компилировать, используя вашКомпиляцияEasyHowToруководство. Но как только я запускаю команду, показанную ниже, в терминале, появляется следующая ошибка:
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
— это переменная среды, которая содержит ваше имя пользователя.
Напротив, tejas
(вероятно) не определен (в том смысле, что это переменная, которой было присвоено некоторое значение). В оболочке переменная, которая не определена, рассматривается, в большинстве случаев, как пустая, т. е. содержащая пустую (т. е. нулевую длину) строку текста. Поэтому $tejas
заменяется наничегои команда, которая фактически выполняется, это sudo chown /usr/local/src
, которая не может работать.