我正在学习如何使用你的编译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 或登录启动文件之一中设置为环境变量。
答案2
尽管你不必手动将用户名替换为$USER
,如果您愿意的话也可以。您只需将其代替整个“单词” $USER
,而不仅仅是USER
。也就是说,$
在写的内容中省略掉:
sudo chown tejas /usr/local/src
这是因为$
之前的“名称”表示它是一个变量的名称,并且该变量应该被取消引用 - 也就是说,用存储在其中的值替换。USER
是一个保存您的用户名的环境变量。
相反,tejas
(可能)未定义(在被赋予某个值的变量的意义上)。在 shell 中,未定义的变量在大多数情况下被视为空的 - 即,保存空的(即零长度)文本字符串。因此$tejas
被替换为没有什么而实际运行的命令是sudo chown /usr/local/src
,它无法运行。