これは、他の誰かが書いた粗雑な 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 のマニュアル ページを参照してください。
一般に、シェル スクリプトのコマンド ライン引数からは、次のようにアクセスできます。
$0, $1, ... $N
したがって、次のようにハードコードされた日付を置き換えることができます。
./room_xls.pl $1
そして、それを次のように実行します
./myscript 1/12/09
$1 は最初のコマンド ライン引数です。これは 9 ドルまで上がります。より基本的な ksh 構文については、このチュートリアルを確認してください。