编译期间的问题
我正在学习如何使用CompilingEasyHowTo指南进行编译 。 但是一旦我在终端中运行下面显示的命令,它就会显示以下错误:
tejas@tejas-AU909AA-ACJ-CQ3120IX:~$ sudo chown $tejas /usr/local/src chown: missing operand after '/usr/local/src'
知道如何克服这个问题吗?
您不需要用您自己的会话登录名(tejas)替换$USER
,因为此变量已包含“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
(可能)没有被定义(在被赋予某个值的变量的意义上)。 在shell中,在大多数情况下,处理未定义的变量,就像它是空的 – 即,保持空(即,零长度)文本串。 所以$tejas
被替换为什么,实际运行的命令是sudo chown /usr/local/src
,这是行不通的。