Bash 문자열의 시작 부분에서 .를 제거하고 결과를 변수에 쓰는 방법은 무엇입니까? [복사]

Bash 문자열의 시작 부분에서 .를 제거하고 결과를 변수에 쓰는 방법은 무엇입니까? [복사]

저는 현재 폴더 이름의 시작 부분에서 a를 제거할 수 있도록 작성하는 데 도움이 되는 쉘 함수를 작성 중입니다 .(폴더 이름을 숨김 폴더 이름에서 숨김이 아닌 폴더 이름으로 변경). 폴더 이름은 다음을 $CWD사용하여 평가되는 변수에 저장됩니다.

CWD=${PWD##*/}

와 같은 변수를 호출하고 싶지만 $CWD처음에는 변수가 없습니다. 현재 나는 를 사용하여 이 작업을 수행하려고 시도하고 있지만 이 문제에 대한 해결책이 열려 있습니다. 이것이 내가 시도한 것입니다:.$GWDsed

GWD=$(sed -i 's/.*//' $CWD)

나는 또한 '이 표현식을 로 대체해 보았고, 로 대체 "해 보았습니다 . 하지만 계속해서 오류가 반환됩니다.-i-e

sed: can't read .atom: No such file or directory

CWD='.atom'나는 지금 어디에 있는가?

답변1

GWD="${CWD#.}"

sed 명령이 읽기를 원하기 때문에 작동하지 않습니다문서에 정의되어 $CWD있습니다.echo $CWD | sed 's/^[\.]//'

당신은 또한 이것에 관심이 있을 수 있습니다이것은 또 다른 질문입니다이것은 당신이 더 CWD강해지는 데 도움이 될 것입니다.

관련 정보