셸 스 크 립 트 프로 그래 밍 내 장 된 문자열 처리 도구
문자열 절편:
${var:offset:number}
문자열 의 하위 문자열 가 져 오기;
문자열 의 맨 오른쪽 에 있 는 몇 글자: ${var: -length}
메모: 콜론 후 공백 문자 가 있어 야 합 니 다.
패턴 기반 하위 문자열:
${var\# * word}: 그 중 word 는 지정 한 구분자 입 니 다.기능: 왼쪽 에서 오른쪽으로 var 변수 에 저 장 된 문자열 을 찾 습 니 다. 처음으로 나타 난 워드 구분자 입 니 다. 문자열 의 시작 부분 이 구분자 사이 의 모든 문 자 를 삭제 합 니 다.
${var\#\# * word}: 그 중 word 는 지정 한 구분자 입 니 다.기능: 왼쪽 에서 오른쪽으로 var 변수 에 저 장 된 문자열 을 찾 습 니 다. 마지막 으로 나타 난 워드 구분자 입 니 다. 이 구분자 사이 의 모든 문 자 를 삭제 합 니 다.
mypath="/etc/init.d/functions"
${mypath##*/}: functions
${mypath#*/}: etc/init.d/functions
${var% word *}: 그 중 word 는 지정 한 구분자 입 니 다.기능: 오른쪽 에서 왼쪽으로 var 변수 에 저 장 된 문자열 을 찾 습 니 다. 처음으로 나타 난 워드 구분자 입 니 다. 이 구분자 에서 문자열 끝 사이 의 모든 문 자 를 삭제 합 니 다.
${var%% word *}: 워드 는 지정 한 구분자 입 니 다.기능: 오른쪽 에서 왼쪽으로 var 변수 에 저 장 된 문자열 을 찾 습 니 다. 마지막 으로 나타 난 워드 구분자 입 니 다. 이 구분자 에서 문자열 끝 사이 의 모든 문 자 를 삭제 합 니 다.
mypath="/etc/init.d/functions"
${mypath%/*}: /etc/init.d
url=http://www.magedu.com:80
${url##*:}
${url%%:*}
대체 찾기:
${var/PatTERN/SUBSTI}: var 가 표시 하 는 문자열 중 처음으로 PATTERN 에 일치 하 는 문자열 을 찾 아 SUBSTI 가 표시 하 는 문자열 로 바 꿉 니 다.
${var//PatTERN/SUBSTI}: var 가 표시 하 는 문자열 중 PATTERN 에 일치 하 는 모든 문자열 을 찾 아 SUBSTI 가 표시 하 는 문자열 로 대체 합 니 다.
${var/\# PATTERN/SUBSTI}: var 가 표시 하 는 문자열 중 줄 의 첫머리 가 PATTERN 에 일치 하 는 문자열 을 찾 아 SUBSTI 가 표시 하 는 문자열 로 바 꿉 니 다.
${var/% PATTERN/SUBSTI}: var 가 표시 하 는 문자열 중 줄 끝 이 PATTERN 에 일치 하 는 문자열 을 찾 아 SUBSTI 가 표시 하 는 문자열 로 바 꿉 니 다.
메모: PATTERN 에 서 는 glob 스타일 과 마스크 를 사용 합 니 다.
찾기 삭제:
${var/PatTERN}: var 문자열 의 첫 번 째 일치 하 는 것 을 PATTERN 모드 로 찾 아 삭제 합 니 다.
${var//PATERN}
${var/#PATTERN}
${var/%PATTERN}
문자 대소 문자 변환:
${var ^}: var 의 모든 소문 자 를 대문자 로 변환 합 니 다.
${var,,}: var 의 모든 대문자 문 자 를 소문 자로 변환 합 니 다.
변수 할당:
${var: - ALUE}: var 변수 가 비어 있 거나 설정 되 어 있 지 않 으 면 VALUE 로 돌아 갑 니 다.그렇지 않 으 면 var 변수의 값 을 되 돌려 줍 니 다.
${var: = VALUE}: var 변수 가 비어 있 거나 설정 되 어 있 지 않 으 면 VALUE 로 돌아 가 VALUE 를 var 변수 에 할당 합 니 다.그렇지 않 으 면 var 변수의 값 을 되 돌려 줍 니 다.
${var: + VALUE}: var 변수 가 비어 있 지 않 으 면 VALUE 로 돌아 갑 니 다.
${var:? ERROR INFO}: var 가 비어 있 거나 설정 되 어 있 지 않 으 면 ERROR 로 돌아 갑 니 다.INFO 가 잘못된 알림 입 니 다.그렇지 않 으 면 var 값 을 되 돌려 줍 니 다.
스 크 립 트 쓰기:
ping 명령 은 172.16.1.1 - 172.16.67.1 범위 내의 모든 호스트 가 온라인 인지 확인 합 니 다.온라인 디 스 플레이 는 up, 비 온라인 디 스 플레이 다운 으로 각각 온라인 호스트 와 비 온라인 호스트 수 를 집계 합 니 다.
각각 for, while 순환 을 사용 합 니 다.
#!/bin/bash
#
declare -i uphosts=0
declare -i downhosts=0
for i in {1..17}; do
if ping -W 1 -c 1 172.16.$i.1 &> /dev/null; then
echo "172.16.$i.1 is up."
let uphosts+=1
else
echo "172.16.$i.1 is down."
let downhosts+=1
fi
done
echo "Up hosts: $uphosts, Down hosts: $downhosts."
function 과 while 방식 으로 구현:
#!/bin/bash
#
declare -i uphosts=0
declare -i downhosts=0
declare -i i=1
hostping() {
if ping -W 1 -c 1 $1 &> /dev/null; then
echo "$1 is up."
return 0
else
echo "$1 is down."
return 1
fi
}
while [ $i -le 67 ]; do
hostping 172.16.$i.1
[ $? -eq 0 ] && let uphosts++ || let downhosts++
let i++
done
echo "Up hosts: $uphosts, Down hosts: $downhosts."
스 크 립 트 작성, 구현:
C 류, B 류 또는 A 류 네트워크 의 모든 호스트 가 온라인 인지 확인 할 수 있 습 니 다.
#!/bin/bash
#
cping() {
local i=1
while [ $i -le 5 ]; do
if ping -W 1 -c 1 $1.$i &> /dev/null; then
echo "$1.$i is up"
else
echo "$1.$i is down."
fi
let i++
done
}
bping() {
local j=0
while [ $j -le 5 ]; do
cping $1.$j
let j++
done
}
aping() {
local x=0
while [ $x -le 255 ]; do
bping $1.$x
let x++
done
}
提示用户输入一个IP地址或网络地址;获取其网络,并扫描其网段;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
비슷한 이름의 Attribute를 많이 만들어 삭제하는 Houdini사용 소프트웨어는 Houdini16.5입니다 배열에서는 애트리뷰트의 보간이 잘 동작하지 않는 것과 AttributeCreateSOP 노드에서 Size가 4를 넘는 애트리뷰트를 작성해도 값이 조작할 수 없어 의미가 없...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.