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