Linux 基础教程 45-read命令

发布时间:2018-11-15  栏目:LINUX  评论:0 Comments

主干用法

   
read命令主要用来自正式输入读取内容要从文本被读取内容,并把消息保存到变量中。其常常因此用法如下所示:

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

部分Linux命令整理复习:

故法示例

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

2、指定显示信息从标准输入读入

[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

3、指定超时时间

[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

4、从指定文件被读取内容

[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,或扫描下的老二维码添加关注:
图片 1

cd  使用权力是有着使用者
cd  /home 进入 home 目录下,cd..退到齐一个索引。
adduser /useradd 使用权力是系统管理员,添加用户
useradd -c -d -e -f
-c comment 新使用者在密码档(通常是/etc/passwd)的笺注资料
-d home_dir 设定使用者的 home
目录为home_dir,预设值为预设的home后面加用户的账号
-e expire_date 设定是账号饿使用时限(格式YYYY-MM-DD),默认为永久有效
userdel +username 删除用户,默认不删home目录

cat  以权限所有人
利用方法 cat [-AbeenstTuv]  [–help]  [–version] filename
将档案串联接后传基本输出 filename 到其他一个文档
-n 或 –number 由1始针对富有出口的行数编号
-b –number-nonblank 和-n相似 只不过对于空行不编号
-s  –squeeze-blank 当遇到有连日两实行以上的空行,就牵动换位一行的空白
-v  –show–nonprinting
cat -n textfile1 > textfile2
吧textfile1底始末丰富行号输入到textfile2中
cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容
cat 也得就此来打造 image file。例如要做软碟的 image
file,将软碟放好后自
cat /dev/fd0 > OUTFILE
反而的,如果想管 image file 写及软碟,请从今
cat IMG_FILE > /dev/fd0
  
  注:
   1. OUTFILE 依输出的 image 档名。
   2. IMG_FILE 指 image file。
   3. 而由 image file 写回 device 时,device 容量需与一定。
   4. 普通用当炮制开机磁片。
  
ls 显示指定工作目录下之始末(列出目前做事目录的所蕴涵的档案及子目录)
-a 显示有文档及目录 显示隐藏文件
-l
显示有除了档案称之外的,也拿档案的貌,权限,拥有者,大小相当于信息详细列出
-r 将档案一反次序显示
-t 将档案为树立时间排序列出
-A  同-a 但无排有“.” 和”..”
-F列有的档案称后加一符号;例如可实施文档加* 目录加/
-R 若目录下发出文档,则以下的文档也依序列出
 列出时干活目录下有所名称是 s 开头的档案,愈新的排愈后面 :
   ls -ltr s*
  
cp  复制
cp  source dest
-a极可能的拿档案状态、权限等材料都照原状态复制
-r 若source中之所涵盖目录名,则拿引得下的档案亦皆依序拷贝的目的目录下
-f 若目的目有一致之档案是。在复制之前先被与删除在进展拷贝。

图片 2

留下评论

网站地图xml地图