Linux 프로 그래 밍 (Linux 셸 프로 그래 밍 6)
구조: 순환 구조.잡담 은 그만 하고, 말 이 바 르 게 바 뀌 었 다.
관리 들, 지난번 test 코너 에 빠 져 있 지 않 습 니까? 우리 의 이번 내용 과 제4 회 내용 은 서로 보 살 펴 주 는 것 입 니 다.
4 회 에서 의 순서 구조 와 판단 구 조 를 기억 하 세 요. 이번 에는 순환 구조 가 담 겨 있 습 니 다.
사실 순환 구조 중의 while 와 until 은 test 특집 에서 이미 말 했다.그래서 오늘 은 한 마디 만 해도 둘 다 순환 이다.
구조 속 의 구성원 들 은 모두 그들 을 잊 지 마 세 요.다음은 오늘 의 주인공 은 for 입 니 다.for 명령 형식 for 변수 목록, 기타 우선
안 써.for 는 주로 어떤 일 을 순환 하 는 데 사용 되 지만 순환 하 는 횟수 와 목록 의 내용 에 달 려 있 기 때문에 for 의 또 다른 역할 은 바로
목록 을 옮 겨 다 니 기.목록 부터 목록 이 끝 날 때 까지 변수의 값 은 목록 의 요소 와 같 습 니 다.이 목록
자신 이 정의 한 내용 입 니 다. 예 를 들 어 한 줄 의 문 자 를 마음대로 쓰 거나 특정한 변수의 값 일 수도 있 습 니 다.우 리 는 명령 의 결 과 를 목록 으로 삼 을 수도 있다.
예 를 들 어 ll, ps 등 명령 은 모두 결과 가 있다.다음은 몇 가지 예 를 들 어 for 의 용법 을 설명 하 겠 습 니 다.
#! /bin/bash
echo "-----------------the starting line of shell-----------------"
for day in Monday Tuesday Wednesday Thursday Friday
do
echo "Today is $day, Don't forget to have a breakfast"
done
echo "-----------------the ending line of shell-----------------"
t1. sh 라 는 스 크 립 트 파일 을 새로 만 들 고 위의 내용 을 파일 에 입력 하여 저장 한 후 파일 에 실행 권한 을 추가 한 다음 에
터미널 에서 이 파일 을 실행 하고 프로그램 알림 에 따라 입력 내용 을 입력 하면 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.
-----------------the starting line of shell-----------------
Today is Monday, Don't forget to have a breakfast
Today is Tuesday, Don't forget to have a breakfast
Today is Wednesday, Don't forget to have a breakfast
Today is Thursday, Don't forget to have a breakfast
Today is Friday, Don't forget to have a breakfast
-----------------the ending line of shell-----------------
관리 들 은 위의 프로그램 에서 변 수 를 볼 수 있 습 니 다. day 는 목록 의 모든 요 소 를 순서대로 옮 겨 다 녔 습 니 다.우 리 는 그것 을 충분히 이용 했다.
성, 목록 의 요 소 를 출력 합 니 다.그러나 우 리 는 순환 의 본질 을 잊 어 서 는 안 된다. 무언 가 를 반복 해서 하 는 것 이다.위의 절 차 는 반복 적 으로
아침 식 사 를 일 깨 워 주다."아이고, 그렇게 말씀 하 시 니 배가 좀 고 프 네요."이 간수 가 아침 을 안 먹 었 나 봐 요. 프로그램 이 잘 어 울 리 나 봐 요.
너 는? 하하... 무대 밑 에서 웃 어.
아까 도 말씀 드 렸 듯 이 목록 은 스스로 내용 을 정의 할 수도 있 고 변수의 값 일 수도 있 습 니 다. 위의 예 에서 목록 은 사용자 정의 내용 입 니 다. 아래.
우리 변 수 를 목록 의 예 로 들 자.
#! /bin/bash
echo "-----------------the starting line of shell-----------------"
week="Monday Tuesday Wednesday Thursday Friday"
for day in $week
do
echo "Today is $day, Don't forget to have a breakfast"
done
echo "-----------------the ending line of shell-----------------"
t2. sh 라 는 스 크 립 트 파일 을 새로 만 들 고 위의 내용 을 파일 에 입력 하여 저장 한 후 파일 에 실행 권한 을 추가 한 다음 에
터미널 에서 이 파일 을 실행 하고 프로그램 알림 에 따라 입력 내용 을 입력 하면 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.
-----------------the starting line of shell-----------------
Today is Monday, Don't forget to have a breakfast
Today is Tuesday, Don't forget to have a breakfast
Today is Wednesday, Don't forget to have a breakfast
Today is Thursday, Don't forget to have a breakfast
Today is Friday, Don't forget to have a breakfast
-----------------the ending line of shell-----------------
관리 들 이 t1 프로그램의 결 과 를 비교 해 보면 프로그램 t1 과 t2 의 결 과 는 완전히 같다 는 것 을 알 게 될 것 입 니 다. 예, 우 리 는 목록 만 수정 한 것 입 니 다.
다른 내용 은 변 하지 않 았 고 결 과 는 당연히 같 았 다.
여러분, 제 가 여기 서 깨 워 드 리 겠 습 니 다. 목록 의 요소 에 빈 칸 이나 따옴표 등 특수 문자 가 있다 면 전의 문 자 를 사용 하거나,
예 를 들 어 우리 가 자주 사용 하 는 don 't 는 이렇게 쓸 수 있 습 니 다. don\t 또는' don '. 이렇게 하 는 것 은 원래 의 것 입 니 다.
왜냐하면. bash 는 기본적으로 빈 칸, 탭 문자 또는 줄 바 꿈 자 를 사용 하여 목록 의 요 소 를 구분 하기 때 문 입 니 다. 그 중 하나만 보면 열 립 니 다.
시작 분리 목록 의 요소 입 니 다.
bash 의 이 구분자 들 은 내부 필드 구분자 라 는 변수 (internal field separator) 를 통 해 제어 되 고 있 습 니 다.
IFS 라 고 부 릅 니 다. 구분자 가 이 변수의 값 입 니 다. set 명령 을 사용 하면 IFS 의 내용 을 볼 수 있 습 니 다. 구분자 들 을 정의 하려 면,
그러면 IFS 의 기본 값 을 임시로 수정 하여 목록 의 변 수 를 구분 할 수 있 습 니 다. 단, 사용 한 후에 복구 해 야 합 니 다.
기본 값 을 복원 합 니 다. 수정 한 후에 기본 값 이 아 닙 니 다. 시스템 의 다른 사용 에 영향 을 줄 수 있 기 때 문 입 니 다. 다음은 우리 가 하 겠 습 니 다.
예 를 들 어 설명해 주세요.
#! /bin/bash
echo "-----------------the starting line of shell-----------------"
week="Monday,Tuesday,Wednesday,Thursday,Friday"
for day in $week
do
echo "Today is $day, Don't forget to have a breakfast"
done
echo "-----------------the ending line of shell-----------------"
t3. sh 라 는 스 크 립 트 파일 을 새로 만 들 고 위의 내용 을 파일 에 입력 하여 저장 한 후 파일 에 실행 권한 을 추가 한 다음 에
터미널 에서 이 파일 을 실행 하고 프로그램 알림 에 따라 입력 내용 을 입력 하면 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.
-----------------the starting line of shell-----------------
Today is Monday,Tuesday,Wednesday,Thursday,Friday, Don't forget to have a breakfast
-----------------the ending line of shell-----------------
여러분 보 셨 죠? 우 리 는 쉼표 목록 의 요 소 를 사용 합 니 다. 이 프로그램 은 정상적으로 옮 겨 다 닐 수 없고 매일 아침 을 먹 으 라 고 일 깨 워 줄 수 없습니다.
식사. 목록 에 쉼표 로 구 분 된 요 소 를 옮 겨 다 닐 수 있 도록 수정 합 시다.
#! /bin/bash
echo "-----------------the starting line of shell-----------------"
old=$IFS
IFS=","
week="Monday,Tuesday,Wednesday,Thursday,Friday"
for day in $week
do
echo "Today is $day, Don't forget to have a breakfast"
done
IFS=$old
echo "-----------------the ending line of shell-----------------"
t4. sh 라 는 스 크 립 트 파일 을 새로 만 들 고 위의 내용 을 파일 에 입력 하여 저장 한 후 파일 에 실행 권한 을 추가 한 다음 에
터미널 에서 이 파일 을 실행 하고 프로그램 알림 에 따라 입력 내용 을 입력 하면 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.
-----------------the starting line of shell-----------------
Today is Monday, Don't forget to have a breakfast
Today is Tuesday, Don't forget to have a breakfast
Today is Wednesday, Don't forget to have a breakfast
Today is Thursday, Don't forget to have a breakfast
Today is Friday, Don't forget to have a breakfast
-----------------the ending line of shell-----------------
프로그램 이 실 행 된 결 과 를 보 세 요. 이것 이 바로 우리 가 원 하 는 결과 가 아 닙 니까? 여러분 은 이제 IFS 의 역할 을 느 낄 수 있 겠 죠?
여러분, 우리 가 방금 예 에서 자신 이 정의 한 내용 을 목록 으로 하고 변수의 값 도 목록 으로 합 니 다. 우 리 는 지금 다시 예 를 들 어 말 합 니 다.
프로그램의 실행 결 과 를 목록 으로 삼 는 방법 을 분명히 하 다.
먼저 Gedit 를 열 고 입력: 월요일 화요일 수요일 목요일 금요일.
week. txt 라 는 파일 에 저장 합 니 다.
#! /bin/bash
echo "-----------------the starting line of shell-----------------"
for day in `cat week.txt`
do
echo $day
done
echo "-----------------the ending line of shell-----------------"
t5. sh 라 는 스 크 립 트 파일 을 새로 만 들 고 위의 내용 을 파일 에 입력 하여 저장 한 후 파일 에 실행 권한 을 추가 한 다음 에
터미널 에서 이 파일 을 실행 하고 프로그램 알림 에 따라 입력 내용 을 입력 하면 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.
-----------------the starting line of shell-----------------
Monday
Tuesday
Wednesday
Thursday
Friday
-----------------the ending line of shell-----------------
관리 들, 위의 예 에서 우 리 는 cat 명령 의 결 과 를 목록 으로 생각 하고 목록 의 요 소 를 옮 겨 다 녔 습 니 다.
반 따옴표 로 명령 을 감 싸 야만 명령 을 집행 할 수 있다.
관리 들, 지금까지 우 리 는 셸 의 세 가지 프로그램 구 조 를 순서 구조, 조건 판단 구조 와 순환 구 조 를 모두 말 했다.
하늘 은 총 결 을 한다. 우리 가 먼저 말 하 는 것 은 세 가지 프로그램 구조의 형식 과 역할 이다. 이어서 이 세 가지 프로그램 구 조 를 어떻게 사용 하 는 지, 그리고 이 를 어떻게 사용 하 는 지 를 말 했다.
세 가지 프로그램 구조 시 주의사항. 물론 우리 가 말 하 는 과정 에서 예 를 들 어 설명 했다.
구조 적 내용 은 끝 났 으 니 뒷 일 을 알 고 다음 회 분 해 를 들 어보 자.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Linux Shell 프로 그래 밍 - 텍스트 처리 grep, sed사용자 가 지정 한 '모드' 에 따라 대상 텍스트 를 일치 하 게 검사 하고 일치 하 는 줄 을 인쇄 합 니 다. ##포함 되 지 않 음, 역방향 일치 \ ##키워드 앞 뒤 가 맞지 않 고 키워드 만 일치 합 니 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.