링크 ux 셸 배열 깊이 학습 이해

3210 단어 linux셸 배열
bash 셸 은 1 차원 배열 만 지원 하지만 매개 변수 개 수 는 제한 이 없습니다.하나의 배열 을 설명 합 니 다:declare-a array(사실 설명 하지 않 고 배열 방식 으로 변 수 를 직접 할당 하면 됩 니 다.BASH 는 그것 이 배열 이라는 것 을 알 고 있 습 니 다)배열 할당:(1)array=(var1 var2 var3...varN)(2)array=([0]=var 1[1]=var 2[2]=var 3...[n]=varN)(3)array[0]=var 1    arrya[1]=var2    ...    array[n]=varN 계산 배열 요소 개수:${\#array[@]}  혹은  ${#array[*]}BASH 의 특수 매개 변수@과*는 모두"확장 위치 매개 변수,1 부터"라 고 표시 하지만 형식 은 약간 차이 가 있 지만 배열 에서 사용 하면 통용 되 는 것 같 습 니 다.인용 배열:

echo ${array[n]}
배열 옮 겨 다 니 기:

filename=(`ls`)
for var in ${filename[@]};do
echo $var
done
다음은 셸 배열 의 작은 예 를 소개 합 니 다.1.'표준 입력'에서 n 번 문자열 을 읽 고 매번 입력 한 문자열 은 배열 array 에 저 장 됩 니 다

#!/bin/bash
i=0
n=5
while [ "$i" -lt $n ] ; do
  echo "Please input strings ... `expr $i + 1`"
  read array[$i]
  b=${array[$i]}
  echo "$b"
  i=`expr $i + 1`
done
2.문자열 의 자 모 를 배열 에 하나씩 넣 고'표준 출력'으로 출력 합 니 다

#!/bin/bash
chars='abcdefghijklmnopqrstuvwxyz'
for (( i=0; i<26; i++ )) ; do
    array[$i]=${chars:$i:1}
    echo ${array[$i]}
done
여기 서 재 미 있 는 점 은${chars:$i:1}입 니 다.chars 문자열 의$i 위치 부터 한 문 자 를 가 져 오 는 것 을 의미 합 니 다.1 을 3 으로 바 꾸 면 3 글자 가 져 옵 니 다~결 과 는 abc bcd...vxyzyz 입 니 다.     //z 를 가 져 올 충분 한 문자열 이 없습니다.      //가 져 올 문자열 이 충분 하지 않 습 니 다.
셸 환경 변수 에 배열 을 적용 하 는 예 를 소개 합 니 다.3.셸 환경 변수 에 배열 적용(1)


[root@pps ~]# SEASON=("Srping" "Summer" "Autumn" "Winter")
, , Spring Srping。
:( )
[root@pps ~]# SEASON=("Spring" "Summer" "Autumn" "Winter")


[root@pps ~]# set | grep SEASON
SEASON=([0]="Spring" [1]="Summer" [2]="Autumn" [3]="Winter")


[root@pps ~]# echo ${SEASON[*]}  echo ${SEASON[@]}
Spring Summer Autumn Winter


[root@pps ~]# echo ${SEASON[3]}
Winter


[root@pps ~]# SEASON[0]="New_Spring"


[root@pps ~]# echo ${SEASON[*]}
New_Spring Summer Autumn Winter


[root@pps ~]# unset SEASON[2]


[root@pps ~]# unset SEASON
4.셸 환경 변수(2)에 배열 을 적용 하려 면 tr 명령 을 사용 하여 파일 에 있 는 리 턴 을 빈 칸 으로 변환 합 니 다

[root@pps ~]# cat /etc/shells | tr "
" " " > /tmp/tmp.file
파일 에 있 는 내용 을 배열 에 할당 합 니 다.(첫 번 째 리 턴 부 호 를 만 나 기 전의 내용)

[root@pps ~]# read -a SHELLS < /tmp/tmp.file
배열 의 할당 상황 을 봅 니 다

[root@pps ~]# set | grep "SHELLS"
SHELLS=([0]="/bin/sh" [1]="/bin/bash" [2]="/sbin/nologin" [3]="/bin/tcsh" [4]="/bin/csh" [5]="/bin/ksh")
다음 에 이 배열 환경 변 수 를 다른 SHELL 스 크 립 트 나 응용 프로그램 에 적용 할 수 있 습 니 다.
결론:이상 의 내용 이 있 습 니 다.앞으로 셸 프로 그래 밍 에서 배열 에 있어 서 문제 가 되 지 않 을 것 입 니 다.해 냈 습 니까?!

좋은 웹페이지 즐겨찾기