셸 함수 재 귀

3657 단어
함수: (바로 하나의 기능 입 니 다.)
정의 함수: 하나의 기능 을 설명 하 는 과정 [function] 함수 명 () {command 1...} 호출 함수: 함수 함수 명 을 한 번 실행 합 니 다.
전달 실 삼 함수: 함수 명 실 삼 1 실 삼 2 실 삼 3... 함수 에서 실 삼 수신:
  • $1 $2 $3 $4…
  • $\# 실 삼 을 전달 하 는 개수
  • $@ 모든 실 삼 참조
  • 반환 값: return 문자열 이 함 수 를 호출 할 때 반환 값 이 있 으 면 $? 을 통 해 주석 을 가 져 옵 니 다: 1Byte 의 너비 < = 255 만 있 습 니 다. 셸 은 일반적으로 설정 에 만 사용 되 기 때문에 기능 함 수 는 TRUE 나 FALSE 만 되 돌려 줍 니 다.
    귀속: 자신 호출
    본질:
  • 언제 부터
  • 언제 까지 끝 날 까요
  • 매번 재 귀 할 때마다 무엇 을 해 야 합 니까? eg: 인쇄 1 - 100
  • 1 부터
  • 2 부터 100 까지
  • 현재 숫자 를 인쇄 할 때마다
  • 상용 Shell 명령: 1. 네트워크 카드 설정 정보 보기 2. 호스트 가 통신 할 수 있 는 지 여 부 를 판단 합 니 다.
    Shell: 약 한 언어 (여러 종류 가 없고 문자열 만 있 음) 입 니 다. Shell 은 이 문자열 이 무엇 인지 에 관심 을 가 질 필요 가 없습니다. 수학 을 실행 하려 면 expr, let 등 명령 으로 계산 을 보조 해 야 합 니 다.Shell 변수: 1, 부분 변수: Shell 코드 에서 정의 하 는 변 수 는 모두 부분 변수 (사용자 변수) (소문 자) 2, 환경 변수 라 고 합 니 다. 사용자 가 특정한 값 을 자주 사용 해 야 할 때 Shell 은 이 값 을 전역 변수 (대문자) 로 정의 하여 프로 세 스 ID: 특수 변수:
    $num (num代表数字)  $1第一个实参  
    		$? 代表上一个函数或上一个命令返回的值     
    

    파일 흐름: 이 파일 에 정 보 를 기록 하 는 인터페이스 -> a. txt 흐름 재 설정: 현재 파일 흐름 을 다른 파일 로 변경 합 니 다.
    >(截断长度为0)     >>(追加到文件末尾)
    
    
    
    屏幕(没有缓冲,不能显示内容):/dev/null
    

    1. n - m 구간 의 종합 구하 기
    # !/bin/bash
    sum=0
    function show()
    {
            for var in `seq ${1} ${2}`
            do
                    echo ${var}
                    sum=`expr ${var} + ${sum}`
            done
                    echo ${sum}
    
    
    }
    show 5 9
    
    

    2. m (4 자리), 역순 인쇄
    # !/bin/bash
    read -p "请输入一个数字" m
    function nixu()
    {
            for(( ;m!=0; ))
            do
                    i=`expr ${m} % 10`
                    printf "${i}"
                    m=`expr ${m} / 10`
            done
    printf "
    " } nixu

    3. 화면 에 몇 대의 호스트 가 온라인 으로 있 는 지 보 여 줍 니 다 (online. data 파일 에서 온라인 호스트: * * * 온라인 호스트: * * * 모두 * * 호스트 가 온라인 으로 있 습 니 다)
    # !/bin/bash
    i=0
    for ip in `seq 141 145`
    do
            ping -c 2 -i 0.2 "192.168.8.${ip}" >> '/dev/null'
            if test $? -eq 0
            then
            echo "192.168.8.${ip}在线" >> online.data
            i=`expr ${i} + 1`
            else
            echo "192.168.8.${ip}不在线" >>online.data
            fi
    done
    echo "一共有${i}台主机在线,详细列表见online.data"
    
    echo "一共有${i}台主机在线" >>online.data
    
    

    4. 100 - 1 인쇄
    # !/bin/bash
    
    function show()
    {
            if test $1 -eq 0
            then
                    return
            fi
            echo $1
    
            show `expr $1 - 1`
    }
    show 100
    
    

    5. 한 층 의 파일 을 옮 겨 다 니 기
    # !/bin/bash
    #函数:list
    #功能:遍历某路径下的内容
    read -p "输入遍历路径" path
    function list()
    {
            for var in `ls $1`
            do
                    echo "$1/${var}"
            done
    }
    #从键盘上输入路径
    #调用函数
    list ${path}
    
    

    6. 심층 파일 옮 겨 다 니 기
    # !/bin/bash
    read -p "请输入遍历路径" path
    function list()
    {
            for var in `ls $1`
            do
            if test -d "$1/${var}"
            then
                    echo "d ${var}"
                    list "$1/${var}"
            else
                    echo "- ${var}"
            fi
            done
    }
    list ${path}
    
    

    7. 특정한 경로 에 있 는 파일 이 존재 하 는 지 판단 합 니 다.
    # !/bin/bash
    read -p "请输入遍历路径" path
    read -p "请输入要查找的文件" file
    function list()
    {
            for var in `ls $1`
            do
            if test -d "$1/${var}"
            then
                    list "$1/${var}"
            elif test "${var}" = "${file}"
            then
                    echo "${1}/${var}"
            fi
            done
    }
    list ${path}
    
    

    좋은 웹페이지 즐겨찾기