![하위 문자열 확장 [ test="-efoo"; echo ${test:0:2} ]이 실패하는 이유는 무엇입니까?](https://linux55.com/image/129999/%ED%95%98%EC%9C%84%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%ED%99%95%EC%9E%A5%20%5B%20test%3D%22-efoo%22%3B%20echo%20%24%7Btest%3A0%3A2%7D%20%5D%EC%9D%B4%20%EC%8B%A4%ED%8C%A8%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
Linux Mint에서는 bash를 사용합니다.
test="-ffoo"; echo ${test:0:2}
처음 두 문자 출력이 작동합니다.
하지만
test="-efoo"; echo ${test:0:2}
실패하고 출력은 분명히 비어 있습니다.
이런 형태인 것 같아요
${parameter:offset:length}
매개변수 문자는*@#?-$!0_
하지만 $test
매개변수 - 확실히 그 내용은 무엇이든 될 수 있나요? -e
포탄같은게 터진거 같은데 왜 ..
답변1
당신이 달릴 때
test="-efoo"; echo ${test:0:2}
echo
대부분의 배포된 내장 명령을 포함하여 -e
일부 echo
구현 에서는 인수를 사용하여 실행하는 것이 유효한 옵션이므로 "삼켜집니다".echo
bash
test="-efoo"; printf %s\\n "${test:0:2}"