Проблема во время компиляции
Я учусь компилировать, используя ваше руководство по CompilingEasyHowTo. Но как только я запускаю команду, показанную ниже в терминале, она показывает следующую ошибку:
tejas@tejas-AU909AA-ACJ-CQ3120IX:~$ sudo chown $tejas /usr/local/src
chown: missing operand after ‘/usr/local/src’
Есть идеи, как преодолеть эту проблему?
2 ответа
Вам не нужно заменять $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
Хотя вам не нужно вручную подставлять имя пользователя для $USER
Можете, если хотите. Вы просто должны поместить это вместо целого "слова" $USER
, не просто USER
, То есть оставь $
в чем ты пишешь:
sudo chown tejas /usr/local/src
Это потому что $
до того, как "имя" означает, что это имя переменной и что переменная должна быть разыменована, то есть заменена значением, хранящимся в ней. USER
переменная окружения, которая содержит ваше имя пользователя
По сравнению, tejas
(вероятно) не определено (в смысле переменной, которой было присвоено какое-то значение). В оболочке переменная, которая не определена, обрабатывается, в большинстве случаев, как пустая, т. Е. Содержит пустую (т. Е. Нулевую длину) строку текста. Так $tejas
ничего не заменяется и команда, которая на самом деле запускается sudo chown /usr/local/src
, который не может работать.