当前位置:  开发笔记 > 编程语言 > 正文

Shell脚本用户提示/输入

如何解决《Shell脚本用户提示/输入》经验,为你挑选了1个好方法。

这是其他人写的粗糙的korn shell脚本.我不太了解使用shell语法,我甚至不确定这是否可行.

有没有办法让我运行这个文件并被提示输入日期,这样我就不必手动进入脚本并每次更改它?

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

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

Brian Clappe.. 18

如果要提示(而不是将日期作为参数传递),请使用以下逻辑(或类似的东西):

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

有关更多信息,请参见ksh93手册页.



1> Brian Clappe..:

如果要提示(而不是将日期作为参数传递),请使用以下逻辑(或类似的东西):

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

有关更多信息,请参见ksh93手册页.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有