编译时出现问题

编译时出现问题

我正在学习如何使用你的编译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(可能)未定义(在被赋予某个值的变量的意义上)。在 shell 中,未定义的变量在大多数情况下被视为空的 - 即,保存空的(即零长度)文本字符串。因此$tejas被替换为没有什么而实际运行的命令是sudo chown /usr/local/src,它无法运行。

相关内容