首頁 > 運維 > linux運維 > 主體

shell--標準輸入輸出(read&echo)

巴扎黑
發布: 2017-07-18 10:28:17
原創
1881 人瀏覽過

 輸入read:

  用途:

    從標準輸入讀取一行,或從檔案描述子FD(file descriptor)讀取一行,並且將其分割成字段。

用法:

  read [-ers] [-a 陣列] [-d 分隔符號] [-i 緩衝區文字] [ -n 讀取字元數] [-N 讀取字元數] [-p 提示符號] [-t 逾時] [-u 檔案描述符] [名稱...]

  常用選項:  

-a:(arrary) 將讀取所取得的字元分割成單字,並依照陣列儲存(從0開始)


#!/bin/ -  ${variable[  ${variable[  ${variable[  ${variable[]}
登入後複製

<strong>运行效果:<br></strong>
登入後複製

依照單字的分割放置到陣列中,索引從0開始<br>34 ew qr34 3qr wer er qw<br>第1個:<br>34<br>第2個:<br>ew<br>第3個:<br>qr34<br>第4個:<br>3qr

-n:接收指定個數的字符,當達到接收的個術後,立即退出輸入狀態


源码:
登入後複製
登入後複製
登入後複製
登入後複製
#- -n  
 ${num}
登入後複製

<strong>运行效果:<br></strong>
登入後複製
登入後複製
登入後複製
登入後複製

-n read接受10個字元<br>sgfgsngfdf<br>接收的10個字元是:sgfgsngfdf

<br>#-p : 允許在read指令後直接指定一個提示,並且可以為多個變數賦值


源码:
登入後複製
登入後複製
登入後複製
登入後複製
 -p    $num3
登入後複製

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

<br>#      -r :不允許反斜線轉義任何字元

<br>      -s:不將read輸入的資料顯示在螢幕上


源码:
登入後複製
登入後複製
登入後複製
登入後複製
#- -p  - 
 ${password}
登入後複製

<strong>运行效果:<br></strong>
登入後複製
登入後複製
登入後複製
登入後複製

- s read的輸入不顯示在螢幕上:<br>password:<br>password is 3432 rq erewr w

<br>      -t :read指令等待輸入的秒數。當計時滿時,回返回非0的狀態,並且退出等待輸入。


源码:
登入後複製
登入後複製
登入後複製
登入後複製
#- -t  ${num}
登入後複製

<strong>运行效果:<br></strong>
登入後複製
登入後複製
登入後複製
登入後複製

將會等等待兩秒的輸入,逾時後,會退出等待;返回非0數值

 

<br>#      -u:從檔案描述子FD(file descriptor)讀取。

 

  補充內容:檔案描述子FD
  檔案描述子在形式上是一個非負整數。實際上,它是一個索引值,指向內核為每個進程所維護的該進程打開檔案的記錄表。當程式開啟一個現有檔案或建立新檔案時,核心會向進程傳回一個檔案描述符。在程式設計中,一些涉及底層的程式編寫往往會圍繞著檔案描述符展開。但是檔案描述子這個概念往往只適用於UNIX、Linux這樣的作業系統。
  習慣上,標準輸入(standard input)的檔案描述符是 0,標準輸出(standard output)是 1,標準錯誤(standard error)是 2。儘管這種習慣並非Unix核心的特性,但是因為一些 shell 和許多應用程式都使用這種習慣,因此,如果核心不遵循這種習慣的話,很多應用程式將不能使用。

 從檔案讀取的範例:

<br>
登入後複製

  test. |
登入後複製

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

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

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

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

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

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

接收的文本字符是:do

接收的文本字符是:echo

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

接收的文本字符是:done
登入後複製

 

#

以上是shell--標準輸入輸出(read&echo)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板