차이점은 무엇입니까?
echo $LOGNAME #prints username
echo "$(logname)" #prints username
을하지만이되지 않습니다 : : 왜 이러한 작업
echo "$(LOGNAME)" #prints command not found.
차이점은 무엇입니까?
echo $LOGNAME #prints username
echo "$(logname)" #prints username
을하지만이되지 않습니다 : : 왜 이러한 작업
echo "$(LOGNAME)" #prints command not found.
logname
는 명령입니다.
LOGNAME
은 변수입니다.
$(logname)
은 logname 명령이 있기 때문에 작동합니다.
$(LOGNAME)
존재하지 않는 명령 LOGNAME
을 실행하려고합니다.
$LOGNAME
가 변수입니다 읽어보십시오. logname
은 명령입니다. 당신은 당신이
echo "$(logname)"
을 할 때 명령을 실행 한 결과를 울리는 반면 당신이 변수를 반향하는
echo $LOGNAME
을 수행 할 때. 출력이 동일한 경우가 발생합니다.
env | grep LOGNAME
을 수행하면 $LOGNAME
은 환경 변수이고 which logname
을 입력하면 실행 파일의 경로가 표시됩니다. 그러나 which LOGNAME
을 수행하면 출력이 없음을 알 수 있습니다. echo $?
은 명령의 종료 상태가 1임을 보여줍니다. 이는 실행 파일을 찾을 수 없음을 의미합니다.
우연히도 $PWD
과 pwd
으로 동일한 작업을 수행 할 수 있습니다.
'$ LOGNAME'과'$ (logname)'둘 다 같은 결과가 발생합니다. '$ LOGNAME'과'env' 같은 환경 변수를 볼 수 있습니다. 반면에'logname'은'man logname'으로 정보를 얻을 수있는 명령입니다. – fedorqui
@fedorqui :'$ LOGNAME'은'$ (logname)'과 때때로 다를 수 있다는 것을 의미합니까? – mrdaliri
그것은 당신이'LOGNAME'을 설정할 수 있기 때문에 다를 수 있습니다. 그것을 시도하십시오 :'LOGNAME = blblbl; echo "$ LOGNAME"'. –