Shell Script (5): 상호작용 과 산수 연산

2907 단어
저작권 은 작가 의 소유 이 며, 어떠한 형식의 전재 도 작가 에 게 연락 하여 권한 을 수 여 받 고 출처 를 밝 혀 주 십시오.
       1. Shell 스 크 립 트 와 터미널 사용자 의 상호작용       이 대화 과정 은 read 명령 을 통 해 이 루어 진다.스 크 립 트 가 read 명령 을 실행 할 때 터미널 사용자 의 입력 을 기다 리 고 사용자 의 입력 이 완료 되 고 Enter 키 를 눌 러 야 스 크 립 트 가 계속 실 행 됩 니 다.다음은 간단 한 예 를 통 해 read 명령 을 통 해 스 크 립 트 와 터미널 의 상호작용 과정 을 보 여 줍 니 다.
#!/bin/bash

echo -n "Enter some text > "
read text
echo "You entered: $text"

       위 코드 를 read 에 기록 합 니 다.demo 파일 에서 실행 가능 한 권한 을 설정 한 다음 실행 효 과 는 다음 과 같 습 니 다.
jason@jason-Lenovo-Y50-70:~/bin$ read_demo.bash
Enter some text > this is some text
You entered: this is some text

       echo 명령 뒤에 n 옵션 이 있 습 니 다. 이 옵션 은 echo 뒤의 내용 이 출력 된 후 커서 가 줄 을 바 꾸 지 않 는 역할 을 합 니 다.위 readdemo 스 크 립 트 에서 echo 뒤의 - n 을 제거 하면 상호작용 의 효 과 는 다음 과 같 습 니 다.
jason@jason-Lenovo-Y50-70:~/bin$ read_demo.bash
Enter some text > 
this is some text
You entered: this is some text

       이 예 는 echo 의 - n 옵션 의 역할 을 잘 설명 할 수 있 습 니 다.       그리고 read 명령 의 재 미 있 는 두 가지 옵션 을 소개 합 니 다.       1. - t 옵션       간단 한 스 크 립 트 를 대조 하여 설명 합 니 다.
#!/bin/bash

echo -n "Hurry up and type something! > "
if read -t 3 response; then
    echo "Great, you made it in time!"
else
    echo "Sorry, you are too slow!"
fi

       이 스 크 립 트 에서 read 의 사용 형식 은 ead -t 3 response 입 니 다.스 크 립 트 가 여기까지 실 행 될 때 사용자 의 입력 을 기다 릴 것 입 니 다. 사용자 가 3 초 안에 입력 을 완료 하고 차 로 돌아 오지 않 으 면 스 크 립 트 는 사용 자 를 기다 리 지 않 고 계속 아래로 실 행 됩 니 다.       2. - s 옵션       read 명령 - s 옵션 은 사용자 가 터미널 에서 변 수 를 입력 할 때 터미널 에서 사용자 가 입력 한 내용 을 표시 하지 않 는 역할 을 합 니 다.예 를 들 어 변수의 값 이 암호 일 때 이 옵션 을 사용 할 수 있 습 니 다.
       연산       Shell Script 에서 언급 된 데이터 형식 은 모두 문자열 이기 때문에 다른 데이터 형식의 작업 을 수행 하려 면 추가 로 변환 해 야 합 니 다.여기 서 Shell 에서 정형 의 산수 연산 을 소개 하 는데 +, -, *,/,% 와 * 6 가지 연산 을 포함한다.       실례 를 통 해 설명 하 겠 습 니 다.
jason@jason-Lenovo-Y50-70:~/bin$ echo $((2+2))
4
jason@jason-Lenovo-Y50-70:~/bin$ echo $(( 2+2 ))
4
jason@jason-Lenovo-Y50-70:~/bin$ echo $(( 2 + 3 * 2))
8

       이 예 에서 Shell 에서 연산 의 용법 을 정리 할 수 있 습 니 다.       (1) 산식 은 $(() 를 사용 하여 포함 시 켜 야 합 니 다.       (2) 산식 에서 연산 자 간 의 빈 칸 은 무시 된다.       설명:       (1) 이 산식 에서 얻 은 결 과 는 여전히 문자열 입 니 다.       (2) * * 는 멱 연산, 즉 x * y < = > pow (x, y) 입 니 다. 예 를 들 어:
jason@jason-Lenovo-Y50-70:~/bin$ echo $((2 ** 3)) = 8

       3. 상호작용 과 산수 연산 의 종합 적 인 시연       다음은 위의 두 부분 을 종합 하여 하나의 발 을 작성 하여 이 글 을 끝 냅 니 다.
#!/bin/bash

number=0

echo -n "Enter a number > "
read number

echo "Number is $number"
if [ $((number % 2)) -eq 0 ]; then
    echo "Number is even"
else
    echo "Number is odd"
fi

관련 문서
http://linuxcommand.org/lc3_wss0100.php
전편: Shell Script (4): 조건 부 분기 문 1 다음 편: Shell Script (6): 조건 부 분기 문 2

좋은 웹페이지 즐겨찾기