为什么我不能在“chown $whoami path”中使用“$whoami”作为变量?

为什么我不能在“chown $whoami path”中使用“$whoami”作为变量?

为什么这不起作用?

[my_user@archlinux ~]$ sudo chown -R ${whoami} /my_folder/path1/path2
chown: missing operand after ‘/my_folder/path1/path2’
Try 'chown --help' for more information.


[my_user@archlinux ~]$ sudo chown -R my_user /my_folder/path1/path2
[my_user@archlinux ~]$ ${whoami}
[my_user@archlinux ~]$ $whoami

但:

[my_user@archlinux ~]$ whoami
my_user

如何使用whoamiin的结果sudo chown -R

答案1

多变的 $whoami没有价值。你可以给它一个值

whoami=$(whoami)

但在这种情况下,您可能想直接使用命令替换$(whoami)

sudo chown -R "$(whoami)" /my_folder/path1/path2

命令替换 ,$(...)扩展为命令的输出(减去任何尾随换行符)。

变量$LOGNAME(和/或$USER)应具有与返回的值相同的值whoami,这意味着您也可以这样做

sudo chown -R "$LOGNAME" /my_folder/path1/path2

相关内容