「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

おすすめ記事