4 إجابة

حسناً بعد مرور عام ، يبدو أنه لا يوجد حل لمشكلتي.

أقوم بإضافة هذه الإجابة لأقول أنه سيكون علي أن أعيش معها ......

0
وأضاف

أنت تدرك أن [هو اسم مستعار (غالباً رابط ، رمزي أو صعب) لـ /usr/bin/test ، أليس كذلك؟ لذلك ربما تكون المشكلة الفعلية هي إصدارات مختلفة من /usr/bin/test ؟

OTOH، ksh يتخطاه مع مدمج. ربما هناك طريقة للحصول عليها لعدم القيام بذلك؟ أو ربما يمكنك بشكل صريح الاسم المستعار [إلى /usr/bin/test ، إذا كان /usr/bin/test في جميع الأنظمة الأساسية متوافقًا؟

0
وأضاف
[هو أمر مدمج في كل من ksh93 و pdksh ..
وأضاف المؤلف Andrew Stein, مصدر

I wouldn't use pdksh on Linux anymore. Since AT&T ksh has become OpenSource there are packages available from the various Linux distributions. E.g. RedHat Enterprise Linux and CentOS include ksh93 as the "ksh" RPM package.

لا يزال يذكر pdksh في العديد من وثائق متطلبات التثبيت من بائعي البرامج. استبدلنا pdksh على جميع أنظمة لينكس لدينا مع ksh93 دون أي مشاكل حتى الآن.

0
وأضاف

في Bash ، الاختبار - a عملية لملف واحد.

أظن أنه في Ksh88 تكون عملية الاختبار - a لملف واحد ، ولكنها لا تشتكي لأن كلمات الاختبار الأخرى هي شرط غير محدد لـ aa.

تريد شيئًا ما

for K in /etc/rc2.d/K* ; do test -a $K && echo heck-yea ; done

أستطيع أن أقول أن ksh93 يعمل تماما مثل باش في هذا الصدد. للأسف ، أعتقد أن الشفرة كانت مكتوبة بشكل سيء ، ورأيي ، ومن المحتمل أن يكون رأيًا سيئًا لأن السبب الأساسي للمشكلة هو اختبار ksh88 المضمَّن الذي يسمح برمز القرص الصلب.

0
وأضاف