سؤال

وهذا هو كورن الخام شيل أن شخصا آخر كتب. أنا لا أعرف الكثير عن باستخدام بناء الجملة قذيفة وأنا لست حتى متأكدا مما إذا كان ذلك ممكنا.

هل هناك أي وسيلة بالنسبة لي لتشغيل هذا الملف وتطالب تاريخ لدرجة أنني لم يكن لديك للذهاب يدويا في السيناريو وتغييرها في كل مرة؟

وعلى سبيل المثال، أريد أن تحل محل "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

وسوف يستمر هذا حلقة للمطالبة التاريخ وحتى يقوم المستخدم بإدخال شيء (أي شيء) بخلاف عائد بسيط.

إذا كنت ترغب في إضافة بعض التحقق من صحة بسيطة، وكنت تستخدم نسخة من 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