Shell 脚本用户提示/输入

2024-03-05

这是别人写的一个粗略的 korn shell 脚本。我对使用 shell 语法不太了解,我什至不确定这是否可行。

有什么方法可以让我运行这个文件并提示输入日期,这样我就不必每次都手动进入脚本并更改它?

例如,我想将“1/12/09”替换为从用户提示符中获取的变量。

#!/bin/ksh
./clear_old
./rooms_xls.pl 1/12/09
cd doors
./doors_xls.pl 1/12/09

如果您希望收到提示(而不是将日期作为参数传递),请使用以下逻辑(或类似的逻辑):

date=
while [ -z $date ]
do
    echo -n 'Date? '
    read date
done

该循环将继续提示输入日期,直到用户输入除简单 RETURN 之外的其他内容(任何内容)。

如果您想添加一些简单的验证,并且您正在使用以下版本 KSH 是 KSH93 或更好,请执行以下操作:

date=
while [ -z $date ]
do
    echo -n 'Date? '
    read date
    if [[ $date =~ ^[0-9]{1,2}/[0-9]{1,2}/[0-9]{1,4}$ ]]
    then
        break
    fi
    date=
done

See ksh93 手册页 http://docs.oracle.com/cd/E23824_01/html/821-1461/ksh93-1.html#scrolltoc了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Shell 脚本用户提示/输入 的相关文章

随机推荐

  • x86 虚拟化如何工作

    任何人都可以推荐有关虚拟化的好读物吗 我建议英特尔软件开发人员手册 http www intel com products processor manuals 具体来说卷3B http www intel com Assets PDF ma
  • 没有名为“delta.tables”的模块

    我收到以下代码的错误 请帮忙 from delta tables import ModuleNotFoundError No module named delta tables INFO SparkContext Invoking stop
  • 启动 RPC 服务器时出现“端点重复”

    我的程序使用 Microsoft RPC 进行进程间通信 为了准备接收 RPC 调用 程序运行以下序列 RpcServerUseProtseqEp 然后 RpcServerRegisterIf 则 RpcServerListen 该程序按照
  • 如何理解这段由数字组成的 JavaScript 代码

    这是 JavaScript 代码 我认为它是十六进制形式并尝试对其进行解码 但仍然找不到该代码的含义 我在我的博客模板中使用此代码 我想了解这段javascript代码的真正含义
  • 再次:UnicodeEncodeError:ascii 编解码器无法编码

    我有一个我想要解析的 XML 文件的文件夹 我需要从这些文件的元素中获取文本 它们将被收集并打印到 CSV 文件中 其中的元素按列列出 I can实际上现在就这样做some我的文件 也就是说 对于我的许多 XML 文件 该过程进展顺利 并且
  • Page_ClientValidate 未定义 (ASP.NET MVC)

    我有一个 ASP NET MVC 表单 布局如下 using Html BeginForm null null FormMethod Post new id ccform Html ValidationSummary true Please
  • 从 bash 捕获 telnet 超时

    参考这个问题 使用 bash 脚本自动化 telnet 会话 https stackoverflow com questions 7013137 automating telnet session using bash scripts 我正
  • Terraform 无效的“each”属性

    我有一个 tfvars json 文件 我想用它来传递我的服务器配置 test test machines master01 node type master image ubuntu 20 04 server type cx21 loca
  • 验证 ECPoint 在给定 x y 坐标和曲线名称的 EllipticCurve 对象上是否有效

    给定公钥的 x 和 y 坐标以及曲线名称 我需要确定这些坐标是否代表曲线上的有效点 如果是 则测试通过 如果不是 则测试失败 到目前为止我的代码是 String curve String testGroupHeaders get curve
  • 快速从子控制器调用parentController方法

    我正在做一个简单的customtableview项目 我有viewController swift和customcell swift文件 我在viewcontroller文件中有一个方法 我如何从customcell文件调用该方法 任何帮助
  • Android:暂停录音并恢复

    我使用以下代码作为基础来创建记录器 我可以开始和停止录音 并且它会正确保存在该位置 但现在我有一个要求暂停录音机 如何暂停录音机 并恢复录音 我在我的三星 Galaxy Ace 中看到了一个录音应用程序 它有一个暂停按钮 有人可以启发我吗
  • 使用按位运算符计算两个数字的和

    我粘贴代码以使用按位运算符查找两个数字的总和 请建议是否可以优化 谢谢 public static int getSum int p int q int carry 0 result 0 for int i 0 i lt 32 i int
  • JSP+Tomcat:单点登录

    如何使用 Tomcat 服务器为许多 JSP 应用程序创建单点登录的最佳方式 一种可能性是使用 Tomcats 构建 SSO 机制 http tomcat apache org tomcat 5 5 doc config host html
  • C++ 11 标准是否保证 std::atomic<> 实现为无锁操作?

    我正处于一个十字路口 我试图在基于互斥锁的数据结构和无锁 可能还有无等待 数据结构之间选择一个 在深入挖掘时 我没有发现有关 C 11 标准是否支持原子类型的无锁操作的任何消息 甚至对于基于宽度的积分 例如atomic uint32 t 换
  • 半透明 JFrame 边框

    我想让 JFrame 边框透明 所以我尝试使用我自己的 Border 类来做到这一点 private class ShadowBorder extends AbstractBorder private static final int RA
  • Java 中字符串(非结构化数据)的 K 最近邻实现

    我正在寻找 Java 中针对非结构化数据的 K 最近邻算法的实现 我发现了许多数字数据的实现 但是我如何实现它并计算文本 字符串 的欧几里得距离 以下是 double 的一个示例 public static double Euclidean
  • Python:如何使用 OpenCV 从网络摄像头捕获图像

    我想使用 OpenCV 从网络摄像头捕获并保存大量图像 这是我目前的代码 import cv2 camera cv2 VideoCapture 0 for i in range 10 return value image camera re
  • React Native导航组件路由问题

    新的反应本机用户在这里 我遇到了问题 不知道如何继续 我能够正确运行反应导航 然后开始收到错误 路由组件必须是 React 组件 但除非我遗漏了某些内容 否则我相信我引用的组件is一个反应组件 请参阅下面的 index android js
  • 如何转义 Ansible YAML 文件中字符串中的冒号?

    我想在安装过程中更改文件 var www kibana config js 中的一行代码 elasticsearch http window location hostname 9200 to elasticsearch http 192
  • Shell 脚本用户提示/输入

    这是别人写的一个粗略的 korn shell 脚本 我对使用 shell 语法不太了解 我什至不确定这是否可行 有什么方法可以让我运行这个文件并提示输入日期 这样我就不必每次都手动进入脚本并更改它 例如 我想将 1 12 09 替换为从用户