
반환 SOMETHING=1 && echo $SOMETHING
해야 하는 이유 반환 하지 않는 이유&&
1
SOMETHING=1 echo $SOMETHING
1
답변1
bash는 변수 할당 문을 해석하기 전에 변수 확장을 수행하기 때문입니다. 따라서 SOMETHING이 이전에 정의되지 않았으므로 명령은 다음과 같습니다.
SOMETHING=1 echo ''
...그런 다음 처형됩니다.
답변2
동시에 내보내기와 에코
root@kali:~# echo ${SOMETHING=1}
1
root@kali:~# echo $SOMETHING
1
root@kali:~# unset SOMETHING
root@kali:~# echo $SOMETHING
root@kali:~# echo ${SOMETHING=1}
1
root@kali:~#
또 다른 바보 같은 예 xD
root@kali:~# echo ${SOMETHING=1} ${PLUS=+} ${SUMTHIN=2} ${EQUALS==} && expr $SOMETHING $PLUS $SUMTHIN
1 + 2 =
3
root@kali:~#
답변3
나중에(할당된 후) 변수를 평가해야 합니다. 예를 들어,
SOMETHING=1 eval 'echo $SOMETHING'
의 전파를 방지합니다 SOMETHING
.