php获取标准输入输出,shell--标准输入输出(readamp;echo)
輸入read:
用途:
從標(biāo)準(zhǔn)輸入讀取一行,或者從文件描述符FD(file descriptor)中讀取一行,并且將其分割成字段。用法:
read [-ers] [-a 數(shù)組] [-d 分隔符] [-i 緩沖區(qū)文字] [-n 讀取字符數(shù)] [-N 讀取字符數(shù)] [-p 提示符] [-t 超時(shí)] [-u 文件描述符] [名稱 ...]
常用選項(xiàng):
-a:(arrary) 將讀取得的字符劃分成單詞,按照數(shù)組存儲(chǔ)(從0開始)
#!/bin/ - ${variable[ ${variable[ ${variable[ ${variable[]}運(yùn)行效果:
按照單詞的分割放置到數(shù)組中,索引從0開始
34 ew qr34 3qr wer er qw
第1個(gè):
34
第2個(gè):
ew
第3個(gè):
qr34
第4個(gè):
3qr
-n:接收指定個(gè)數(shù)的字符,當(dāng)達(dá)到接收的個(gè)術(shù)后,立即退出輸入狀態(tài)
源碼:#- -n
${num}運(yùn)行效果:
-n read接受10個(gè)字符
sgfgsngfdf
接收的10個(gè)字符是:sgfgsngfdf
-p : 允許在read命令后直接指定一個(gè)提示,并且可以為多個(gè)變量賦值
源碼:-p $num3運(yùn)行效果:使用-p參數(shù)完成多個(gè)變量賦值:
請(qǐng)輸入三個(gè)數(shù)字或字符:(用空格隔開)23 34 345 num1=23num2=34num3=345
-r:不允許反斜線轉(zhuǎn)義任何字符
-s:不將read輸入的數(shù)據(jù)顯示在屏幕上
源碼:#- -p -
${password}運(yùn)行效果:
-s read的輸入不顯示在屏幕上:
password:
password is 3432 rq erewr w
-t :read命令等待輸入的秒數(shù)。當(dāng)計(jì)時(shí)滿時(shí),回返回一個(gè)非0的狀態(tài),并且退出等待輸入。
源碼:#- -t ${num}運(yùn)行效果:
將會(huì)等等待兩秒的輸入,超時(shí)后,會(huì)退出等待;返回非0數(shù)值
-u:從文件描述符FD(file descriptor)讀取。
補(bǔ)充內(nèi)容:文件描述符FD
文件描述符在形式上是一個(gè)非負(fù)整數(shù)。實(shí)際上,它是一個(gè)索引值,指向內(nèi)核為每一個(gè)進(jìn)程所維護(hù)的該進(jìn)程打開文件的記錄表。當(dāng)程序打開一個(gè)現(xiàn)有文件或者創(chuàng)建一個(gè)新文件時(shí),內(nèi)核向進(jìn)程返回一個(gè)文件描述符。在程序設(shè)計(jì)中,一些涉及底層的程序編寫往往會(huì)圍繞著文件描述符展開。但是文件描述符這一概念往往只適用于UNIX、Linux這樣的操作系統(tǒng)。
習(xí)慣上,標(biāo)準(zhǔn)輸入(standard input)的文件描述符是 0,標(biāo)準(zhǔn)輸出(standard output)是 1,標(biāo)準(zhǔn)錯(cuò)誤(standard error)是 2。盡管這種習(xí)慣并非Unix內(nèi)核的特性,但是因?yàn)橐恍?shell 和很多應(yīng)用程序都使用這種習(xí)慣,因此,如果內(nèi)核不遵循這種習(xí)慣的話,很多應(yīng)用程序?qū)⒉荒苁褂谩?/p>
從文件讀取的例子:
test. |運(yùn)行效果:read接受文本作為輸入
接收的文本字符是:#------------------------------------------
接收的文本字符是:#------------------------------------------
接收的文本字符是:# read接受文本作為輸入
接收的文本字符是:echo " read接受文本作為輸入"
接收的文本字符是:cat test.sh | while read line
接收的文本字符是:do
接收的文本字符是:echo
接收的文本字符是:echo "接收的文本字符是:"${line}
接收的文本字符是:done
總結(jié)
以上是生活随笔為你收集整理的php获取标准输入输出,shell--标准输入输出(readamp;echo)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 容器切换,oracle12
- 下一篇: linux的oracle最低配置,Ora