xml地图|网站地图|网站标签 [设为首页] [加入收藏]

热门直播

当前位置:美高梅游戏网站 > 热门直播 > Linux 基础教程 45-read命令

Linux 基础教程 45-read命令

来源:http://www.gd-chuangmei.com 作者:美高梅游戏网站 时间:2019-10-16 11:08

美高梅棋牌,基本用法

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

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

exit   退出

用法示例

美高梅游戏官网娱乐,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  "ntimeoutn"
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 linhai 进入linhai子目录
cd ..返回上一层目录
cd /切换到跟目录
cd ~切换到用户目录

ls 显示目录 ls 显示当前目录下的所有文件
ls -l 显示当前目录下的所有文件的详细信息
ls -a 显示所有文件和目录,只要区别就是.和..目录
ls -A 显示所有文件和目录

mkdir 建立子目录//不能在不存在的目录下创建子目录 mkdir test 在当前目录下建立一个test子目录
mkdir /test 在跟目录下建立一个test子目录

rmdir 删除目录//只能删除空的子目录 rmdir tmp 删除当前目录下的tmp子目录
rmdir /tmp 删除跟目录下的tmp子目录

cp 拷贝命令 cp 1.txt 2.txt 把当前目录下的1.txt文件复制成2.txt(2.txt是通过cp命令创建的,内容与1.txt相同)
cp 1.txt test 把1.txt拷贝到test子目录下
cp -i 1.txt test 目标目录下如果有该文件,则提示是否覆盖
cp -v 1.txt test 显示拷贝命令执行过程
cp -R * test 把当前目录下的所有东西复制到test目录下

rm 删除命令 rm 1.txt 删除当前目录下的1.txt文件
rm * 删除当前目录下的一切
rm -f *.txt 强制删除当前目录下的一类文件,无提示
rm -i *.txt 删除时会按照文件个数逐一提示 遇见目录则跳过
rm -r test 删除test目录及其目录内的所有内容

more 让画面暂停 ls -l|more(more 1.txt) 当内容超过时用more表示,按任意键下一页

本文由美高梅游戏网站发布于热门直播,转载请注明出处:Linux 基础教程 45-read命令

关键词:

上一篇:vmware 共享文件夹

下一篇:没有了