나는 다음을 시도하고 있습니다 :
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)