![중괄호 안에 있는 변수의 문자열을 바꿀 때 어떤 Bash 함수가 사용됩니까?](https://linux55.com/image/185595/%EC%A4%91%EA%B4%84%ED%98%B8%20%EC%95%88%EC%97%90%20%EC%9E%88%EB%8A%94%20%EB%B3%80%EC%88%98%EC%9D%98%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EB%B0%94%EA%BF%80%20%EB%95%8C%20%EC%96%B4%EB%96%A4%20Bash%20%ED%95%A8%EC%88%98%EA%B0%80%20%EC%82%AC%EC%9A%A9%EB%90%A9%EB%8B%88%EA%B9%8C%3F.png)
존재하다https://stackoverflow.com/questions/12174947/removing-part-of-a-filename-for-multiple-files-on-linux#12175160, 예제 코드는 명시적인 호출 sed
이나 유사한 것 없이 변수 내용의 문자열 조작이 수행되는 Bash 기능을 사용합니다.
mv "$filename" "${filename//thisstringgetsremoved/}"
여기서 사용되는 Bash 기능은 무엇입니까? 내부적으로 sed를 호출합니까, 아니면 내장 정규식 구현에 의존합니까(만약 그렇다면 여기서는 어떤 스타일의 정규식을 사용할 수 있습니까)?
답변1
이것은매개변수 확장, 셸에 내장되어 있으며 에 의존하지 않습니다 sed
. 패턴은 정규식이 아니지만파일 이름 패턴.
기본 매개변수는 다음과 같이 확장됩니다.POSIX에 의해 지정됨; bash 구현은 일부 확장을 추가합니다.