>  기사  >  운영 및 유지보수  >  리눅스에서 읽기 사용법 소개

리눅스에서 읽기 사용법 소개

巴扎黑
巴扎黑원래의
2017-09-04 15:38:002058검색

1. 기본 읽기

read 명령은 표준 입력(키보드)에서 입력을 받거나 다른 파일 설명자(나중에 설명)에서 입력을 받습니다. 입력을 받은 후 읽기 명령은 데이터를 표준 변수에 넣습니다. 다음은 읽기 명령의 가장 간단한 형식입니다.

::

#!/bin/bash
echo -n "Enter your name:"   //参数-n的作用是不换行,echo默认是换行
read  name                   //从键盘输入
echo "hello $name,welcome to my program"     //显示信息
exit 0                       //退出shell程序。
//********************************

읽기 명령은 -p 매개변수를 제공하므로 읽기 명령줄에서 직접 프롬프트를 지정할 수 있습니다.

그래서 위 스크립트는 다음 스크립트로 축약할 수 있습니다.:

#!/bin/bash
read -p "Enter your name:" name
echo "hello $name, welcome to my program"
exit 0

위 읽기에서 읽은 후의 변수는 이름이 하나만 있거나, 여러 개가 있을 수 있습니다. 이때 여러 데이터가 입력되면 첫 번째입니다. 데이터는 첫 번째 변수에, 두 번째 데이터는 두 번째 변수에 부여됩니다. 입력 데이터가 너무 많으면 최종 값이 모두 첫 번째 변수에 부여됩니다. 입력이 너무 적으면 끝나지 않습니다.

//********************************************** **

읽기 명령에서는 행에 변수를 지정할 수 없습니다. 변수를 지정하지 않으면 읽기 명령은 수신된 데이터를 REPLY 환경 변수에 배치합니다.

예:

read -p "숫자 입력"

환경 변수 REPLY에는 입력된 모든 데이터가 포함됩니다. 환경 변수 REPLY는 다른 변수와 마찬가지로 쉘 스크립트에서 사용할 수 있습니다.

2.

읽기 명령을 사용하면 잠재적인 위험이 있습니다. 스크립트는 대부분 중지되고 사용자 입력을 기다립니다. 데이터 입력 여부에 관계없이 스크립트를 계속 실행해야 하는 경우 -t 옵션을 사용하여 타이머를 지정할 수 있습니다.

-t 옵션은 읽기 명령이 입력을 기다리는 시간(초)을 지정합니다. 타이머가 가득 차면 읽기 명령은 0이 아닌 종료 상태를 반환합니다.

#!/bin/bash
if read -t 5 -p "please enter your name:" name
then 
echo "hello $name ,welcome to my script"
else
echo "sorry,too slow"
fi
exit 0

타이머 입력 외에도 읽기 명령을 설정하여 입력한 문자 수를 계산할 수도 있습니다. 입력한 문자 수가 설정한 개수에 도달하면 자동으로 종료되며, 입력된 데이터를 변수에 할당합니다.

#!/bin/bash
read -n1 -p "Do you want to continue [Y/N]?" answer
case $answer in
Y | y)
  echo "fine ,continue";;
N | n)
  echo "ok,good bye";;
*)
 echo "error choice";;
esac
exit 0

이 예에서는 -n 옵션과 값 1을 사용하여 읽기 명령이 문자 하나를 수신하는 즉시 종료하도록 지시합니다. 대답할 문자를 누르기만 하면 읽기 명령이 즉시

입력을 받아 변수에 전달합니다. Enter를 누를 필요가 없습니다.

3. 무음 읽기(입력이 모니터에 표시되지 않음)

때때로 스크립트 사용자 입력이 필요하지만 입력된 데이터가 모니터에 표시되지 않을 것으로 예상됩니다. 일반적인 예는 비밀번호를 입력하는 것이지만, 물론 숨겨야 할 다른 데이터도 많이 있습니다.

-s 옵션을 사용하면 읽기 명령에 입력된 데이터가 모니터에 표시되지 않도록 합니다(실제로는 데이터가 표시되지만 읽기 명령은 텍스트 색상을 배경색과 동일하게 설정합니다).

#!/bin/bash
read  -s  -p "Enter your password:" pass
echo "your password is $pass"
exit 0

4. 파일 읽기

마지막으로 read 명령을 사용하여 Linux 시스템에서 파일을 읽을 수도 있습니다.

읽기 명령이 호출될 때마다 파일에 있는 "한 줄"의 텍스트를 읽습니다. 파일에 읽을 수 있는 줄이 없으면 읽기 명령은 0이 아닌 상태로 종료됩니다.

파일 읽기의 핵심은 텍스트에 있는 데이터를 읽기 명령으로 어떻게 옮기느냐 하는 것입니다.

가장 일반적인 방법은 파일에서 cat 명령을 사용하고 결과를 읽기 명령이 포함된 while 명령으로 직접 파이프하는 것입니다.

예::

#!/bin/bash
count=1    //赋值语句,不加空格
cat test | while read line        //cat 命令的输出作为read命令的输入,read读到的值放在line中
do
   echo "Line $count:$line"
   count=$[ $count + 1 ]          //注意中括号中的空格。
done
echo "finish"
exit

위 내용은 리눅스에서 읽기 사용법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.