这是别人写的一个粗糙的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

有关更多信息,请参见the ksh93 man page

关于Shell脚本用户提示/输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/439390/

10-11 23:21
查看更多