expr 명령을 사용하는 다양한 방법

expr 명령을 사용하는 다양한 방법

나는 bash expr 명령을 안팎으로 배우려고 노력하고 있습니다. expr 명령을 사용하는 가장 기본적이고 가장 창의적이고 까다롭고 예상치 못한 방법은 무엇입니까? 작고 관리하기 쉬운 예제가 좋습니다.

답변1

저는 주로 expr정규식 매칭에 사용합니다. 때로는 sedor보다 더 설명적입니다 grep.

if expr "$value" : '.*bar$' >/dev/null; then ...

비교:

if echo "$value" | grep '.*bar$' >/dev/null; then ...

또는:

name=`expr "$filename" : '.*/\(.*\)\.[^.]*$'`

비교:

name=`echo "$filename" | sed 's!.*/\(.*\)\.[^.]*$/\1/'`

기능적으로는 동일하지만 expr이 약간 더 빠릅니다. 특히 과거에는 일부 쉘에 내장 함수로 expr이 있었습니다(예: DEC Ultrix).

또한 저는 엄격한 Bourne 쉘 구문을 사용하여 프로그래밍하므로 다음 expr과 같은 기본 산술을 계속 사용합니다.

count=0
while [ $count -lt 10 ]; do
    # something
    count=`expr $count + 1`
done

관련 정보