質問

これは、誰かが書いた粗雑なkornシェルスクリプトです。シェル構文の使用についてはあまり知りませんし、これが可能かどうかもわかりません。

このファイルを実行して日付を入力するように指示する方法はありますので、毎回手動でスクリプトに移動して変更する必要はありませんか?

たとえば、「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以外の何か(何か)を入力するまで、日付の入力を続けます。

いくつかの簡単な検証を追加する場合、バージョンを使用している KSH93以上のKSHの場合は、次のようにします。

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 manページ詳細情報。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top