echo 및 wc 명령을 사용하여 문자열 길이를 찾는 방법

echo 및 wc 명령을 사용하여 문자열 길이를 찾는 방법

나는 다음을 시도하고 있습니다 :

Len='echo $str | wc -c'

그러나 나는 다음과 같은 결과를 얻습니다.

'Echo $str|wc -c'

내가 뭘 잘못했나요?

답변1

명령 대체에 따옴표를 사용하려면 예를 들어 작은따옴표( ' ) 대신 역따옴표( ` )를 사용해야 합니다. :

Len=`echo $str | wc -c`

다른 사람들이 언급했듯이 구문을 사용할 수도 있습니다 len=$(...).

답변2

Len='echo $str | wc -c'

그러면 변수가 Len문자열로 설정됩니다 echo $str | wc -c(아무 것도 출력하지 않음).

쉘은 명령 대체가 아니기 때문에 문자열의 명령을 실행하지 않습니다.

명령의 출력을 얻으려면 명령 대체를 사용하십시오 $(...).

Len=$( echo "$str" | wc -c )

이 경우 다음을 사용할 수도 있습니다.

Len="${#str}"

이것은 훨씬 빠릅니다.

매개변수 확장은 ${#parameter}값의 길이까지 확장됩니다 parameter.

답변3

명령의 출력을 Len 변수에 할당해야 합니다.

Len=$(echo "$str" | wc -c)

관련 정보