SHELL脚本学习(五)用户输入

获取用户输入
1、基本的读取

read命令从标准或其他文件描述符读取数据,获取输入后,read命令将值存入变量中。
命令格式:

read variable
选项-p:提示信息

#!/usr/bin/bash
read -p "Enter your name:" name
echo hello $name
~$ ./test.sh
Enter your name:lintao
hello lintao
2、超时
使用read命令时要小心,脚本可能一直停在read命令处。如果不管是否有数据输入脚本都要继续执行,则 
可以使用-t选项,后面跟要等待的秒数
#!/usr/bin/bash
if read -t 5 -p "Enter your name:" name
then
    echo hello $name
else
    echo null 
fi
~$ ./test.sh
Enter your name:null
~$ ./test.sh
Enter your name:lintao
hello lintao
3、无显示读取
有时想要从脚本用户处得到输入,又不想显示在屏幕上。这时可以使用 -s选项
#!/usr/bin/bash
if read -s -p "Enter your password:" passwd
then
    echo " ";
    echo passeord=$passwd;
else
    echo null 
fi
~$ ./test.sh
Enter your password: 
passeord=123456
4、从文件中读取

下面两种方式实现输出文件自身的内容。

1、通过cat命令和管道读取
#!/usr/bin/bash
cat ./test.sh| while read line
do
    echo $line
done 
2、通过输入重定向读取
#!/usr/bin/bash
while read line
do
    echo $line
done < ./test.sh
实战演练

检查文件中的 IP列表 是否能连通

#!/usr/bin/bash

echo scrip name is $(basename $0)

# 输入文件名
 while read -p "input file path: " filename
 do
  # 文件名为空 或者 是 quit 则退出
     if [ -z $filename ] || [ $filename = quit ]
     then
          echo exit
          break
     fi

     if [ -e $filename ]
     then
          cat $filename | while read ip
          do
               echo ip : $ip 
               ping -c 3 $ip
          done
     else
          echo file $filename not exists
     fi
 done
 echo end

相关推荐

  1. SHELL脚本学习用户输入

    2024-06-07 22:08:04       32 阅读
  2. shellshell实现等待用户输入

    2024-06-07 22:08:04       30 阅读
  3. 【LAMMPS学习、LAMMPS命令(1) LAMMPS 输入脚本

    2024-06-07 22:08:04       38 阅读
  4. 学习Shell脚本编程】

    2024-06-07 22:08:04       36 阅读
  5. shell脚本教程学习

    2024-06-07 22:08:04       22 阅读
  6. shell处理用户输入——移动参数

    2024-06-07 22:08:04       22 阅读
  7. SHELL脚本学习(七) 脚本控制

    2024-06-07 22:08:04       32 阅读
  8. SHELL脚本学习(七) 脚本控制(2)

    2024-06-07 22:08:04       30 阅读
  9. Linux学习08_学习shell脚本编程

    2024-06-07 22:08:04       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 22:08:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 22:08:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 22:08:04       82 阅读
  4. Python语言-面向对象

    2024-06-07 22:08:04       91 阅读

热门阅读

  1. Python | 排队取奶茶

    2024-06-07 22:08:04       34 阅读
  2. 23 种设计模式详解(全23种)

    2024-06-07 22:08:04       29 阅读
  3. Lua 基础 04 模块

    2024-06-07 22:08:04       35 阅读
  4. 调用第三方API --------------Python篇

    2024-06-07 22:08:04       26 阅读
  5. npm如何发布自己的插件包

    2024-06-07 22:08:04       28 阅读
  6. 算法——二分查找

    2024-06-07 22:08:04       35 阅读
  7. Python - 获取文件行数

    2024-06-07 22:08:04       32 阅读
  8. C++应用维纳滤波实现语音信号的去噪

    2024-06-07 22:08:04       28 阅读
  9. React 18

    React 18

    2024-06-07 22:08:04      29 阅读
  10. refault distance算法的一点理解

    2024-06-07 22:08:04       32 阅读
  11. 【HarmonyOS】取消页面转场动画

    2024-06-07 22:08:04       32 阅读