Проблема во время компиляции

Я учусь компилировать, используя ваше руководство по 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, который не может работать.

Другие вопросы по тегам