나는 문자열 보안을 위해 내 스크립트를 떠받하는 동안이 발견 :이것은 GNU Bash의 버그입니까?
$ echo '!!'
!!
$ echo "$(echo '!!')"
echo "$(echo 'echo '!!'')" #<~ the console echoes the line with expanded history here
echo !! #<~ the result
아무것도, 변수 확장하지해야 가장 안쪽의 단일 인용되는, 인용 나에게 보인다, 서브 쉘 또는 그렇지 않은 경우이 경우에는 !!
을 마지막 행으로 확장합니다. 그렇게해서는 안되는 것처럼 보입니다.
나는 당신에게 물어 봅니다 : 이것은 Bash의 버그이며, 감탄 부호를 출력하는 따옴표 붙은 서브 쉘 확장을 사용할 수 있다면? 위의 예상대로 그렇다면 왜이 행동 않는 버그가 아닌 경우
:
편집 (리눅스 배쉬 4.1.007 사용)?
$ foo='some value'
$ echo "$(echo 'neither $foo nor `this subshell` should expand here')"
neither $foo nor `this subshell` should expand here
버그가 아닙니다. bash가 인수 확장을 수행하는 방법입니다. 누군가는 매뉴얼의 관련 부분을 참조하여 답할 것입니다. – Juliano