bash 하위 문자열 내장을 사용하여 하위 쉘 또는 다른 bash 함수의 출력을 대체하려고합니다.
다음 명령은 zsh에서 잘 작동합니다. bad substitutionbash 에서 오류가 발생합니다.
${${PWD##*/}//trunk/latest}
또는
${$(basename $PWD)//trunk/latest}
출력은 마지막 폴더 수 있어야 $PWD로 대체, latest내 현재 디렉토리 인 경우trunk
그래서 /home/user/trunk되어야한다latest
변수 또는 파이프에 의존하지 않고 문자열 버전을 체인화 할 수있는 bash와 동등한 것이 있습니까? 또는 bash 내장 기능은 입력이 문자열 또는 일반 변수 일 수 있습니까?
sed몇 단계 만 거치면 달성 할 수 있습니다 . 그러나 나는 왜 배쉬가 서브 쉘 실행을 거부하는지 이해하지 못한다. 그리고 다른 문자열처럼 그것의 내용을 교체