shell脚本用户交互

了解如何实现人机交互是让计算机处理数据的关键步骤。让我们深入探讨如何通过计算机程序进行信息录入,特别是使用read命令来实现人机交互。

一、read命令功能

read命令是Shell脚本中用于接受键盘输入的基本命令。它的主要功能是等待用户输入数据,直到用户按下回车键为止。read命令常用于人机交互场景,允许用户在脚本运行过程中输入数据。

命令选项:

-p:打印提示信息-t:限定输入时间-s:不回显输入内容(通常用于密码输入)-n:限定输入字符个数

二、交互输入案例

案例需求: 编写一个模拟Linux文本界面登录的用户交互脚本。

案例要点: 了解Linux文本界面登录所需的输出信息和界面布局。

shell脚本用户交互

实现步骤:

输出登录提示信息:根据Linux文本界面登录窗口的输出信息,打印登录提示。交互输入登录账号:使用read命令获取用户输入的登录账号。交互输入登录密码:使用read命令获取用户输入的登录密码。

代码实现:

AppMall应用商店 AppMall应用商店

AI应用商店,提供即时交付、按需付费的人工智能应用服务

AppMall应用商店 56 查看详情 AppMall应用商店

# job实现代码   02_login.sh#!/bin/bash

Author: www.zutuanxue.com

Release:

Description: 仿真登录

IP=ifconfig ens33|egrep -w "inet"|awk '{print $2}'

1、清屏

clear

2、输出提示信息

echo "CentOS Linux 8 (Core)"echo -e "Kernel uname -r on an uname -m\n"echo -e "Web console: https://www.php.cn/link/2243ee303bf3b1042e3d60895273eee0 or https://www.php.cn/link/dddc6994d5d3cd2cce94b112443e8fc9 \n"

3、交互输入登录名

echo -n "$HOSTNAME login: "read account

4、交互输入密码

read -s -t30 -p "Password: " pwecho

实现效果:

shell脚本用户交互

三、学习视频

视频:shell交互输入命令-read

通过上述步骤和代码示例,您可以更好地理解如何使用read命令实现人机交互,从而让计算机处理用户输入的数据。

以上就是shell脚本用户交互的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/457904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 02:15:41
下一篇 2025年11月8日 02:16:31

相关推荐

  • Go语言中UDP服务器的构建与ReadFromUDP方法的正确使用

    本文深入探讨go语言中`net.udpconn.readfromudp`方法的阻塞行为及其常见使用误区。我们将详细解释`readfromudp`的正确用法,强调预分配缓冲区的重要性,并通过示例代码演示如何构建一个健壮的udp服务器。文章旨在帮助开发者避免因缓冲区未初始化导致的非预期行为,并提升跨平台…

    2025年12月16日
    000
  • Go语言中捕获终端上下箭头键输入

    在go语言中,直接使用`bufio.newreader(os.stdin)`无法有效捕获上下箭头键等特殊输入,因为标准输入通常处于行缓冲模式,并且箭头键会生成多字节的转义序列。为实现对这些特殊按键的实时、非缓冲检测,推荐使用`termbox-go`等第三方库。本文将详细介绍`termbox-go`库…

    2025年12月16日
    000
  • Go语言GOPATH环境变量未导出问题解析与解决方案

    当Go语言开发者在使用go get等命令时遇到“cannot download, $GOPATH not set”错误,通常是因为GOPATH环境变量虽然被设置,但并未正确导出到子进程。本文将深入解析这一常见问题,阐明环境变量导出机制的重要性,并提供多种正确的GOPATH设置与持久化方案,确保Go工…

    2025年12月16日
    000
  • Go语言中捕获上下箭头键:使用termbox-go实现交互式输入

    在Go语言中直接使用`os.Stdin`读取上下箭头键会遇到困难,因为它们是多字节的终端控制序列,需要终端处于原始模式。本教程将介绍如何利用`termbox-go`库,以跨平台的方式高效捕获和处理这些特殊按键事件,从而实现交互式命令行应用。 深入理解问题:为何标准输入无法直接识别箭头键 在Go语言中…

    2025年12月16日
    000
  • Go语言中reflect.MakeFunc的动态函数创建与版本兼容性解析

    本文深入探讨了go语言中`reflect.makefunc`的用法,该功能允许在运行时动态创建函数。我们将通过具体示例演示如何使用`reflect.makefunc`来构建类型安全的通用函数,并重点解析了初学者可能遇到的“undefined reflect.makefunc”错误,强调了go语言版本…

    2025年12月16日
    000
  • 如何使用Golang在Linux上搭建多版本环境

    使用gvm或手动方式可高效管理Linux下多Go版本。1. gvm支持安装、切换和设默认版本,如gvm install/use go1.21;2. 手动解压不同版本至独立目录,并通过函数切换GOROOT和PATH;3. 执行go version验证当前版本;4. 注意依赖安装与PATH冲突,IDE需…

    2025年12月16日
    000
  • Golang如何在Windows下配置多版本Go切换

    通过批处理脚本切换GOROOT和PATH,可在Windows下实现Go多版本管理。1. 将不同Go版本解压至独立目录如C:go1.20、C:go1.21;2. 创建switch-goX.XX.bat脚本设置GOROOT和PATH并验证版本;3. IDE中可通过系统变量或手动配置指定GOROOT;4.…

    2025年12月16日
    000
  • Golang环境变量设置与常见问题处理

    Go语言环境变量配置影响开发体验,正确设置可避免路径错误与依赖问题。核心变量包括GOROOT(安装路径)、GOPATH(工作区)、GO111MODULE(模块模式开关)和GOPROXY(代理地址)。Linux/macOS在~/.zshrc或~/.bashrc中用export配置,Windows通过系…

    2025年12月16日
    000
  • 解决Go语言go get命令中$GOPATH未设置错误的指南

    本教程旨在解决go语言开发中常见的`go get`命令报错“cannot download, $gopath not set”的问题。即使您已通过`gopath=…`设置了环境变量,该错误仍可能发生。核心原因是`gopath`变量未正确导出到子进程。文章将详细解释`export`命令的作…

    2025年12月16日
    000
  • 如何在 Golang 程序中设置 ulimit -n

    本文介绍了如何在 Golang 程序中设置 `ulimit -n` (文件描述符数量限制)。我们将探讨使用 `syscall` 包中的 `Getrlimit` 和 `Setrlimit` 函数来修改进程的资源限制,并解释了可能遇到的 “invalid argument” 和 …

    2025年12月16日
    000
  • Go 中 GOMAXPROCS 的默认值及设置详解

    本文旨在清晰阐述 Go 语言中 `GOMAXPROCS` 的概念、默认值及其作用。`GOMAXPROCS` 用于设置同时执行的最大 CPU 数量,直接影响 Go 程序的并发性能。从 Go 1.5 开始,默认值已更改为可用 CPU 核心数,但了解其历史沿革和手动设置方法对于优化程序性能至关重要。本文将…

    2025年12月16日
    000
  • 使用Go语言高效读取大型文件末尾内容的教程

    本教程详细介绍了如何使用go语言高效地读取大型文件的最后n行内容,而无需将整个文件加载到内存中。文章通过利用`os.file.seek`和`os.file.stat`函数,实现从文件末尾向后逐字节读取,并构建了一个完整的示例,演示了如何每隔10秒读取日志文件的最后两行,适用于日志监控等场景。 在处理…

    2025年12月16日
    000
  • 如何在 Go 程序中设置 ulimit -n

    本文介绍了如何在 Go 程序中通过 `syscall` 包来设置 `ulimit -n`,即进程可以打开的最大文件描述符数量。文章将详细讲解如何使用 `Getrlimit` 和 `Setrlimit` 函数,并提供示例代码,同时解释了可能遇到的 “invalid argument&#82…

    2025年12月16日
    000
  • 深入理解与调试 mDNS、Bonjour 和 Avahi 服务

    本文将探讨 mdns、bonjour 和 avahi 服务发现的调试方法。由于 mdns 不支持传统 dns 区域传输,我们将介绍通过主动查询、利用特定守护进程(如 avahi 和 mdnsresponder)的日志和状态转储功能,以及使用网络流量分析工具(如 wireshark 和 tcpdump…

    2025年12月16日
    000
  • Go与C++互操作:使用SWIG处理std::string参数的现代化实践

    本文详细阐述了如何利用swig在go语言与c++++之间高效地传递`std::string`参数。通过采用go 1.3.3及swig 3.0.2及更高版本提供的现代化方法,特别是借助`go build`的自动化能力,并结合`const std::string&`的规范使用,可以显著简化go与…

    2025年12月16日
    000
  • 在 Go 程序中设置 ulimit -n

    本文介绍了如何在 Go 程序中设置 `ulimit -n`,即进程可以打开的最大文件描述符数量。通过 `syscall` 包提供的 `Getrlimit` 和 `Setrlimit` 函数,我们可以查询和修改进程的资源限制。文章提供了一个示例程序,演示了如何获取和设置 `RLIMIT_NOFILE`…

    2025年12月16日
    000
  • 如何在Golang中实现跨平台Web服务

    Go语言通过内置HTTP库和多平台编译支持实现跨平台Web服务,示例代码展示基础服务器返回操作系统名称;关键在于避免平台相关依赖,使用filepath处理路径,避免调用系统命令,并选用纯Go第三方库;通过GOOS和GOARCH环境变量可交叉编译生成Linux、Windows、macOS等平台二进制文…

    2025年12月16日
    000
  • 解决Go语言连接MSSQL数据库的ODBC问题:一份实用指南

    本文旨在帮助Go开发者解决在使用ODBC连接MSSQL数据库时遇到的常见问题,特别是在不同操作系统下配置和使用ODBC驱动,以及处理编译和运行时错误。通过详细的步骤和示例,本文将指导你成功连接并操作MSSQL数据库。 前提条件 在开始之前,请确保你已经安装了以下组件: Go 语言环境 (Go 1.1…

    2025年12月16日
    000
  • 现代Go语言程序编译与运行指南

    本文旨在为go语言初学者提供一份现代化的程序编译与运行指南,纠正因遵循过时教程而产生的常见问题。我们将详细讲解go环境的正确配置,包括`path`环境变量的设置,以及如何使用go官方提供的`go`命令(如`go run`和`go build`)来高效地编译和执行go程序,同时提醒注意代码编写规范和官…

    2025年12月16日
    000
  • Go语言开发与部署:利用IntelliJ IDEA及其插件实现高效工作流

    本教程旨在指导go语言开发者如何利用intellij idea及其官方go插件,构建一个集开发、调试与自动化部署于一体的高效工作流。文章将详细介绍intellij idea的安装、go插件的配置,并重点阐述如何设置远程部署与文件自动上传功能,以实现类似于pycharm的便捷开发体验。 引言:Go语言…

    2025年12月16日
    000

发表回复

登录后才能评论
关注微信