스크립트의 잘라내기 명령을 이해하는 데 도움이 됩니다.

스크립트의 잘라내기 명령을 이해하는 데 도움이 됩니다.

Bash 스크립트에는 다음 두 줄이 있습니다.

ipaddr=$0
segments=`echo $ipaddr | cut --delimiter=. --fields=2-3 --output-delimiter=/`

$segments변수를 생성하는 두 번째 줄을 해석하는 방법을 모르겠습니다 .

이 부분은 어떻게 작동하나요?

답변1

이것이 고장입니다.

echo는 $ipaddr 변수에 있는 내용을 출력합니다.

echo $ipaddr

이건 그때야관로다음 명령에.

Cut은 문자열을 구분(예: 여러 부분으로 분할)하는 데 사용할 수 있습니다. cut 매개변수는 문자열을 "잘라낼" 위치를 알려줍니다(여기서는 점이므로 IP 주소가 "198.51.100.0" 형식인 경우 198 51 100과 0으로 분할됩니다). 또 다른 매개변수는 잘린 문자열의 어느 부분을 가로채야 하는지 알려줍니다. 다음은 2부와 3부입니다. 위에서 제공한 IP 예에서는 51과 100이 제공됩니다. 마지막 매개변수는 선택한 부분(부분 2와 3)을 새로운 구분 기호(여기서는 슬래시)와 함께 넣으라고 지시합니다. 결과는 51/100입니다.

cut --delimiter=. --fields=2-3 --output-delimiter=/

이 모든 결과(예제에서는 51/100)가 세그먼트 변수 내에 저장됩니다. 다음 명령을 실행할 때마다:

somevar=`somecommand`

백틱 사이의 모든 내용이 실행됩니다. 반환되는 내용은 등호 왼쪽으로 전달됩니다.

답변2

분석해 보겠습니다.

echo $ipaddr

이것이 십진수로 작성된 IPv4 주소라고 가정하면 100.90.80.70과 같습니다. 우리는 그것을 파이프로 연결합니다.

`cut --separator=. --필드=2-3 --출력 구분 기호=/

그러면 "."에서 각 입력 줄(이 경우 하나만)이 잘리므로 이제 100 90 80 70이 됩니다. 여기에서 필드 2~3을 선택합니다. 즉, 90 80을 유지합니다. '/'로 구분하여 작성합니다. 간단한 실험을 통해 결과는 90/80인 것으로 나타났습니다.

위의 내용은 주로 cut(1)의 매뉴얼 페이지에서 나온 것입니다. 내 기억은 그렇지 않습니다.저것좋아요

관련 정보