"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

관련 정보