>  기사  >  운영 및 유지보수  >  쉘--표준 입력 및 출력(읽기 및 에코)

쉘--표준 입력 및 출력(읽기 및 에코)

巴扎黑
巴扎黑원래의
2017-07-18 10:28:171858검색

입력 읽기:

목적:

표준 입력에서 한 줄을 읽거나 파일 설명자 FD(파일 설명자)에서 한 줄을 읽고 필드로 분할합니다.

사용법:

 read [-ers] [-a 배열] [-d 구분 기호] [-i 버퍼 텍스트] [-n 읽은 문자 수] [-N 읽은 문자 수] [ -p 프롬프트] [-t timeout] [-u 파일 설명자] [이름...]

일반적으로 사용되는 옵션:

-a: (배열) 읽은 문자를 단어로 나누어 배열에 저장합니다. (0부터 시작) )


#!/bin/ -  ${variable[  ${variable[  ${variable[  ${variable[]}

<strong>运行效果:<br></strong>

는 단어 구분에 따라 배열에 배치되며 인덱스는 0<br>34부터 시작합니다 ew qr34 3qr wer er qw<br>첫 번째:<br>34<br>두 번째:<br>ew<br>th3 숫자: <br>qr34<br>4번째 숫자: <br>3qr

-n: 지정된 문자 수에 도달하면 즉시 입력 상태를 종료합니다.


源码:
#- -n  
 ${num}

<strong>运行效果:<br></strong>

-n 읽기 10 허용 <br>sgfgsngfdf<br>에서 수신한 10자는 다음과 같습니다: sgfgsngfdf

<br> -p: 읽기 명령 바로 뒤에 프롬프트를 지정할 수 있으며 여러 변수에 값을 할당할 수 있습니다.


源码:
 -p    $num3

<strong>运行效果:<br></strong>
使用-p参数完成多个变量赋值:
请输入三个数字或字符:(用空格隔开)23 34 345 num1=23num2=34num3=345
 <br>

<br> - r: 아니요 백슬래시로 모든 문자를 이스케이프할 수 있습니다.

<br> -s: 읽기로 입력한 데이터를 화면에 표시하지 않습니다.


源码:
#- -p  - 
 ${password}

<strong>运行效果:<br></strong>

-s 읽기로 입력한 내용이 화면에 표시되지 않습니다. <br>password: <br> 비밀번호는 3432입니다. rq erewr w

<br> -t : 읽기 명령이 입력을 기다리는 시간(초)입니다. 타이머가 만료되면 0이 아닌 상태를 반환하고 입력 대기를 종료합니다.


源码:
#- -t  ${num}

<strong>运行效果:<br></strong>

는 2초 동안 입력을 기다립니다. 시간 초과 후 0이 아닌 값을 반환합니다.

<br> -u: 파일 설명자 FD(파일 설명자)에서 읽습니다. .

 보충 내용: 파일 설명자 FD
  파일 설명자는 음수가 아닌 정수 형식입니다. 실제로는 프로세스별로 커널이 관리하는 프로세스가 오픈한 파일들의 레코드 테이블을 가리키는 인덱스 값이다. 프로그램이 기존 파일을 열거나 새 파일을 만들면 커널은 파일 설명자를 프로세스에 반환합니다. 프로그래밍에서 일부 저수준 프로그래밍은 종종 파일 설명자를 중심으로 진행됩니다. 그러나 파일 설명자의 개념은 UNIX 및 Linux와 같은 운영 체제에만 적용되는 경우가 많습니다.
  관례적으로 표준 입력의 파일 기술자는 0, 표준 출력은 1, 표준 오류는 2입니다. 이 규칙은 Unix 커널의 기능은 아니지만 일부 쉘과 많은 응용 프로그램이 이 규칙을 사용하기 때문에 커널이 이 규칙을 따르지 않으면 많은 응용 프로그램이 작동하지 않습니다.

파일에서 읽는 예:

<br>

  test. |

<br>运行效果:
read接受文本作为输入

接收的文本字符是:#------------------------------------------

接收的文本字符是:#------------------------------------------

接收的文本字符是:# read接受文本作为输入

接收的文本字符是:echo " read接受文本作为输入"

接收的文本字符是:cat test.sh | while read line

接收的文本字符是:do

接收的文本字符是:echo

接收的文本字符是:echo "接收的文本字符是:"${line}

接收的文本字符是:done

위 내용은 쉘--표준 입력 및 출력(읽기 및 에코)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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