泷羽sec学习--Shell编程之用户交互

学习内容来自B站UP:泷羽sec

微信公众号:泷羽sec

1.使用 read 命令实现交互

  • 基本语法:read​命令用于从标准输入(通常是键盘)读取用户输入的数据。其基本格式为read [选项] 变量名​。例如,read name​会暂停脚本的执行,等待用户输入一个字符串,并将这个字符串赋值给变量name​。

  • 选项说明:

    • ​-p​选项:用于在等待用户输入时显示提示信息。例如,read -p "请输入你的名字: " name​,这样在等待用户输入时会先显示 “请输入你的名字:” 这个提示信息,使得交互更加友好。
    • ​-t​选项:用于设置等待用户输入的超时时间,单位是秒。例如,read -t 5 name​表示等待用户输入名字的时间最多为 5 秒,如果超过 5 秒没有输入,脚本会继续执行,变量name​的值为空。
    • ​-n​选项:限制用户输入字符数。例如,read -n 3 name​表示用户最多输入3个字符。
  • 示例应用:

    • 以下脚本用于询问用户的年龄并打印出来:

      #!/bin/bash
      read -p "请告诉我你的年龄: " age
      echo "你输入的年龄是:$age"
      

2.菜单式交互

  • 实现方式:可以通过结合echo​命令输出菜单选项,再使用read​命令获取用户选择的菜单项。

  • 示例脚本:

    • 下面是一个简单的菜单式交互脚本,用于选择文件操作(查看或复制):

      #!/bin/bash
      echo "请选择操作:"
      echo "1. 查看文件内容"
      echo "2. 复制文件"
      read -p "请输入选项(1或2): " choice
      if [ $choice = "1" ]; then
          read -p "请输入文件名: " file_name
          cat $file_name
      elif [ $choice = "2" ]; then
          read -p "请输入源文件名: " source_file
          read -p "请输入目标文件名: " target_file
          cp $source_file $target_file
      else
          echo "无效的选项"
      fi
      

3.参数传递式交互(通过命令行参数)

  • 基本原理:在执行脚本时,可以在脚本名后面添加参数,这些参数可以在脚本内部作为变量来使用,从而实现交互。

  • 示例用法:

    • 假设我们有一个脚本test.sh​,内容如下:

      #!/bin/bash
      echo "第一个参数是:$1"
      echo "第二个参数是:$2"
      
      • 当我们在命令行执行./test.sh arg1 arg2​时,$1​的值为arg1​,$2​的值为arg2​。这种方式适合在脚本已经知道需要获取哪些信息,并且用户希望通过命令行一次性输入所有参数的情况。

4.对话框式交互(使用外部工具)

  • 工具介绍:在 Linux 系统中,可以使用zenity​或kdialog​等工具实现对话框式交互。这些工具不是 Shell 脚本语言本身的功能,但可以和 Shell 脚本结合使用。

  • 示例(使用 zenity):

    • 以下脚本使用zenity​来弹出一个输入对话框,询问用户的姓名:

      #!/bin/bash
      name=$(zenity --entry --text="请输入你的姓名")
      echo "你输入的姓名是:$name"
      
      • 若要使用这个脚本,需要确保系统中安装了zenity​工具。这种方式可以提供更加图形化的交互体验,类似于在图形界面应用程序中的交互方式。

你可能感兴趣的:(网络安全,学习,网络安全,linux,bash)