Linux 基础教程 肆伍-read命令

基本用法

   
read命令主要用以从规范输入读取内容或从文件中读取内容,并把音信保存到变量中。其常用用法如下所示:

read [选项] [文件]
选项 解释
-a array 将内容读取到数值中,变量默认为数组且以空格做为分割符
-d delimiter 遇到指定的字符即停止读取
-n nchars 指定最多可以读入的字符数,即定义输入文本的长度
-r 屏蔽转义符
-p prompt 显示提示信息
-s 静默模式,在输入字符时不在终端中显示,常用于密码输入等
-t timeout 指定超时时间
-u FD 从文件描述符中读入,该FD可以由exec开启
  1. 无不当查找技巧:

用法示例

1、从专业输入读入

[root@localhost test]# cat read.sh
#!/bin/bash
echo -n "Please input your name:"
read name
echo "Hello $name"
[root@localhost test]# bash read.sh
Please input your name:Jack
Hello Jack

二、钦命呈现音讯从正规输入读入

[root@localhost test]# cat read.sh
#!/bin/bash
# echo -n "Please input your name:"
read -p "Please input your name:" name
# read name
echo "Hello $name"
[root@localhost test]# bash read.sh
Please input your name:Jack
Hello Jack

在以上示例中,read是二遍能够承受多少个参数的,如下所示:

read -p "Please input your name:" firstName secondName lastName

但须要注意的事项如下:

  • 假若输入的数据少于变量个数,则多余的变量不会取得到数码,即变量值为空
  • 壹旦输入的数额多于变量个数,则出乎的多上校整个赋给最终一个变量
  • 假若在read命令前面未有定义任何变量,脚本在推行时,借使用户输入数据,此时多少则保留到环境变量$REPLY

三、内定超时时间

[root@localhost test]# cat read.sh
#!/bin/bash
if read -t 3 -p "Please input your name:" firstName secondName lastName
then
  echo "variable is $firstName - $secondName - $lastName"
else
   echo -e  "\ntimeout\n"
fi
[root@localhost test]# bash read.sh
Please input your name:
timeout

四、从钦赐文件中读取内容

[root@localhost test]# cat -n test.txt
     1  this is test text.
     2  this is second line.
     3  Hello world
     4  C# Main
     5  Python
# 使用-u选项
[root@localhost test]# cat readtest.sh
#!/bin/bash
exec 5< ~/test/test.txt
count=0
while read -u 5 var
do
 let count=$count+1
 echo "Line $count is $var"
done
echo "Total line count is $count"
exec 5<&-
[root@localhost test]# bash readtest.sh
Line 1 is this is test text.
Line 2 is this is second line.
Line 3 is Hello world
Line 4 is C# Main
Line 5 is Python
Total line count is 5
# 使用管道
[root@localhost test]# cat readtest.sh
#!/bin/bash
count=1
cat ~/test/test.txt |  while read line
do
 echo "Current line $count - $line "
 let count=$count+1
done
echo "Total line count is $count"
[root@localhost test]# bash readtest.sh
Current line 1 - this is test text.
Current line 2 - this is second line.
Current line 3 - Hello world
Current line 4 - C# Main
Current line 5 - Python
Total line count is 1
# 使用重定向
[root@localhost test]# cat readtest.sh
#!/bin/bash
count=0
while read line
do
 let count=$count+1
 echo "Current line $count - $line "
done < ~/test/test.txt
echo "Total line count is $count"
[root@localhost test]# bash readtest.sh
Current line 1 - this is test text.
Current line 2 - this is second line.
Current line 3 - Hello world
Current line 4 - C# Main
Current line 5 - Python
Total line count is 5

本文同步在微信订阅号上揭穿,如各位小伙伴们欣赏笔者的稿子,也能够关怀自个儿的微信订阅号:woaitest,或扫描上面包车型客车2维码添加关怀:
图片 1

  在Linux系统中“find”命令是当先八分之四种类用户都得以动用的指令,并不是ROOT系统一管理理员的专利。不过普通用户使用“find”命令时也有不小恐怕遇见那样的题材,那正是Linux系统中系统一管理理员ROOT能够把有个别文件目录设置成禁止访问方式。那样普通用户就从不权力用“find”命令来查询这么些目录只怕文件。当普通用户使用“find”命令来询问那些文件目录是,往往会现出”Permissiondenied.”(禁止访问)字样。系统将不能查询到您想要的文本。为了幸免那样的荒唐,大家只是使用转移错误提醒的艺术尝试着查找文件,

输入
find / -name access_log 2>/dev/null

  这一个措施是把查找错误提醒转移到特定的目录中去。系统实施这些命令后,遭受错误的消息就径直输送到stderrstream
2 中,access_log 二便是标志系统将把错误音讯输送到stderrstream
第22中学,/dev/null是3个特殊的文本,注解空的如故失实的消息,那样查询到的错误音讯将被转移了,不会再展现了。

  1. 基于1些文件名查找办法:

  这一个方式和在WINDOWS中搜索已知的文件名艺术是一模壹样的。可是在Linux中依照部分文件名查找文件的办法要比在WINDOWS中的同类查找方法要强有力得多。例如我们领略有个别文件包括有srm这几个字母,那么要找到系统中兼有包蕴有那1个假名的文书是能够完毕的,输入:

  find /etc -name ‘*srm*’

  1.  依照文件的风味查询办法:

设若只晓得有个别文件的大小,修改日期等特色也得以动用“find”命令查找出来,那和WINDOWS系统中的”搜索”功用是基本相同的。

  例如大家驾驭3个Linux文件大小为1,500
bytes,那么大家只是使用如下命令来询问find / -size 1500c,字符 c
表明那么些要寻找的文件的高低是以bytes为单位。若是大家连这几个文件的有血有肉尺寸都不驾驭,那么在Linux中还足以拓展模糊查找方法来解决。例如大家输入find/
-size +一千0000c
那些命令,则表明大家钦赐系统在根目录中找找出超过一千0000字节的公文并展示出来。命令中的“+”是意味供给系统只列出超乎钦定大小的文书,而利用“-”则表示供给系统列出小于钦赐大小的文本。上边包车型大巴列表正是在Linux使用不相同“
find”命令后系统所要作出的查找动作,从中我们很不难看到在Linux中应用“find”命令的不二诀窍是无数的,“
find”命令查找文件只要灵活利用,丝毫无需在WINDOWS中查找能力差。

  find / -amin -10 # 查找在系统中最后10秒钟访问的文本
  find / -atime -2 # 查找在系统中最后4八钟头访问的文书
  find / -empty # 查找在系统中为空的公文恐怕文件夹
  find / -group cat # 查找在系统中属于 groupcat的文本
  find / -mmin -5 # 查找在系统中最后6分钟里修改过的文书
  find / -mtime -1 #招来在系统中最终贰肆时辰里修改过的文件
  find / -nouser #找寻在系统中属于作废用户的公文
  find / -user fred #搜索在系统中属于FRED这几个用户的文本

  下边包车型大巴列表就是对find命令所能够钦定文件的性状进行检索的局地条件。在那里并未列举全数的探寻条件,参考有关Linux有关书籍能够知道全部find命令的检索函数。
  -amin n
  查找系统中最后N分钟访问的文本
  -atime n
  查找系统中最后n*2四钟头访问的文本
  -cmin n
  查找系统中最终N秒钟被转移状态的文书
  -ctime n
  查找系统中最终n*二肆钟头被转移状态的文书
  -empty
  查找系统中空白的文件,或空白的文件目录,或目录中未有子目录的文书夹
  -false
  查找系统中总是错误的文件
  -fstype type
  查找系统中设有于钦点文件系统的文本,例如:ext二 .
  -gid n
  查找系统汉语件数字组 ID 为 n的文书
  -group gname
  查找系统中文件属于gnam文件组,并且钦赐组和ID的文书

图片 2

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图