문자열에서 처음 n자를 제거하려고 하는데 다음 오류가 발생합니다.
line 5: ${ echo $data | sed -r 's/.{ $index0 }//' }: bad substitution
Bash 스크립트에서 이 코드를 사용하는 경우:
data=${ echo $data | sed -r 's/.{$index}//' }
수정 사항이 있나요?
답변1
훌륭한,
- 명령 대체는 이고
$( ... )
, 그렇지 않습니다${ ... }
. 중괄호가 아닌 일반 괄호입니다. $index
작은 따옴표가 있으므로아니요쉘로 확장되었습니다. 이를 위해서는 큰따옴표를 넣어야 합니다.$data
에코에 큰따옴표를 추가하면data
공백이나 전역 문자가 포함된 경우 차이가 발생합니다.- Bash에서는 부분 문자열 확장을 사용하여
data=${data:$index}
문자열 앞의 일부 문자를 제거할 수 있습니다.