这是原油Korn Shell脚本别人写的。我不知道很多有关使用shell语法,我甚至不知道这是可能的。

有没有办法对我来说,运行此文件,并提示输入日期,这样我就不必手动进入剧本,每一次改变它呢?

例如,我想与从用户提示所取的变量来取代“09年1月12日”。

#!/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

请参阅的ksh93的手册页以获得更多信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top