读取文件和输入——read 脚本命令

Linux之read命令使用

read命令:

read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量

1)read后面的变量var可以只有一个,也可以有多个,这时如果输入多个数据,则第一个数据给第一个变量,第二个数据给第二个变量,如果输入数据个数过多,则最后所有的值都给最后一个变量

-p  read –p “提示语句”,则屏幕就会输出提示语句,如下图

当变量个数和输入个数一样时:

注意空格,要不会出错

当变量个数和输入个数不一样时,即输入个数比变脸个数多,则多的都赋给最后一个变量:

2)命令计数

-n

read –n 个数

设置read命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量

看一下cc.sh脚本的内容:

read –n 1的意思是只接受一个字符

执行

这里输入y后不用回车,自己就执行

3)等待时间

-t 时间

read –t 时间

使用read命令存在着潜在危险。脚本很可能会停下来一直等待用户的输入。如果无论是否输入数据脚本都必须继续执行,那么可以使用-t选项指定一个计时器。-t选项指定read命令等待输入的秒数。当计时满时,read命令返回一个非零退出状态;

看一下cc.sh脚本的内容:

执行cc.sh然后等待超过5s,发现自动退出了

4)关闭回显

-s

read –s

-s选项能够使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是read命令将文本颜色设置成与背景相同的颜色),比如密码

看一下cc.sh的脚本内容

执行,看到输入密码的时候屏幕不显示

6)从文本读取内容并且赋给变量

6)读取输入

#!/bin/bash
echo -e "Please enter your test :"
read TESTREAD last
echo $TESTREAD

echo $last

结果显示输入内容。

Please enter your test

ni hao mingtian

ni

hao mingtian

7 综合应用

[[email protected] shell]# ./4read.sh
are your happy?
happy
happy is the right
where do you work?beijing
lguess beijing keeps you busy!
enter your job title?worker
I thought you might be an worker
who are your best friends?li ming bo
Say hi to ming
[[email protected] shell]# cat 4read.sh
#!/bin/bash
echo -e "are your happy?"
read answer
echo "$answer is the right"

echo -n "where do you work?"
read
echo lguess $REPLY keeps you busy!

read -p "enter your job title?"
echo "I thought you might be an $REPLY"

echo -n "who are your best friends?"
read -a friends
echo "Say hi to ${friends[1]}"

可以发现echo -e会有回车,-n着没有

read是按照空格进行分割的

时间: 2024-09-30 16:12:30

读取文件和输入——read 脚本命令的相关文章

FileInputStream 读取文件数据的输入字节流

1 package com.inputstream; 2 3 /* 4 File类: 用于描述一个文件或者文件夹的. 5 6 通过File对象我们可以读取文件或者文件夹的属性数据,如果我们需要读取文件的内容数据,那么我们需要使用IO流技术. 7 8 IO流(Input Output) 9 10 IO流解决问题: 解决设备与设备之间的数据传输问题. 内存--->硬盘 硬盘--->内存 11 IO流技术: 12 IO流分类: 13 如果是按照数据的流向划分: 14 输入流 15 输出流 16 如果

用adb pull命令从android系统中读取文件失败的原因及解决办法

问题:使用adb pull命令从android系统中读取文件失败.显示:Permission denied 原因:是由于文件权限原因引起. 使用ls -l命令查看android系统中的文件权限为: -rw-rw---- app_51   app_51 也就是说,该文件只有app_51用户以及app_51群组拥有读写权限,而adb shell的用户为shell,既不是app_51用户,也不在app_51群组中,所以没有权限读取这个文件.所以就出现了 Permission denied. 解决方法:

c语言从文件中读取数据作为输入

这次在厦门大学夏令营机试中遇到一个问题,它要求数据输入一定要从文件中输入,而不是从命令行中输入. 当时我并不知道这个,所以机试我就GG了,回来之后立马翻看了书,查了资料.现在是搞清楚了. 1 #include <stdio.h> 2 3 // 计算斐波拉契数列 4 5 int fib(int n) 6 { 7 if(n == 0 || n == 1) 8 return n; 9 else 10 return fib(n-2) + fib(n-1); 11 } 12 13 int main()

使用while和read命令读取文件内容

转:使用while和read命令读取文件内容 1.准备数据文件 $cat a.txt 200:2 300:3 400:4 500:5 2.用while循环从文件中读取数据 #!/bin/ksh while read line do echo $line done < a.txt 运行shell,结果如下: 200:2 300:3 400:4 500:5 3.使用IFS读文件 说明:默认情况下IFS是空格,如果需要使用其它的需要重新赋值 #!/bin/ksh IFS=* while read fi

1.3.1bat脚本命令RENAME REN 重新命名文件

文员.网管必会技能:Windows命令行bat/cmd批处理脚本的编写应用之文件管理应用1.3.1bat脚本命令RENAME REN 重新命名文件 命令: RENAME REN= RENAMEREN [盘符:][路径]<旧文件名> <新文件名> 简单应用: 当前目录创建文件夹(盘符路径不写就默认是当前目录) ren 原文件名1 新文件名1ren 原文件名2 新文件名2ren 原文件名3 新文件名3......... 正常应用: 指定目录创建文件夹 ren [盘符:][路径]原文件名

Python--通过索引excel表将文件进行文件夹分类的脚本+读取指定目录下所有文件名的脚本

1.通过索引excel表将文件进行文件夹分类的脚本,此脚本由于将ip和id对应并生成对应id的文件夹将文件进行分类,也可以任意规定表格内容,通过vul_sc_ip.txt和xlsx文件进行索引. # -*- coding:utf8 -*- import sys import os import pandas as pd import shutil import stat def find(path,ip): # open the excel file df = pd.read_excel(pat

python逐行读取文件脚本

逐行读取的方法很多,这里提供一种非常简单的方法: #!/usr/bin/python # -*- coding: utf-8 -*- for line in open("awip.conf"): print line 其他的可以参考教程:python逐行读取文件内容的三种方法Python--文件读取 原文地址:http://blog.51cto.com/weiruoyu/2140927

将内容输入到文本中、读取文件、将输出结果保存到文件中、计算程序跑的时间(c++)

将数据输出到文件中 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<map> #include<cstdlib> #include<fstream> #include<time.h> using names

linux脚本命令的用法

grep命令的用法 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 参数: 1. -A NUM,--after-context=NUM   除了列出符合行之外,并且列出后NUM行. 如:   $ grep –A 1 panda file  (从file中搜寻有panda样式的行,并显示该行的后1行) 2