سؤال

لدي برنامج نصي KSH الذي يجب أن يبقى كذلك (بعض البرامج التي يديرها تصر على كونها KSH). أريد أن آخذ وسيطة الإدخال "Test.txt" وإزالة آخر 4 أحرف أو ابحث عن ".txt" واستبدالها مع أي شيء.

في باش سأفعل

NewVar=${@/.txt/}

هذا لا يعمل في KSH رغم ذلك. كيف يمكنني التخلص من .txt في Ksh؟ حاولت

bash -c 'NewVar=${@/.txt/}'

لكنه لم يعمل المتغير $ @ في هذه القشرة التي تم إنشاؤها حديثا.

شكرا،

دان

هل كانت مفيدة؟

المحلول

لماذا لا تستخدم اسم الباشئة?

نصائح أخرى

لن يتيح لك KSH القيام بذلك باستخدام $ @، ولكن إذا قمت بتعيينها بمتغير مؤقت، فيمكنك القيام بذلك دون تصوير بروك آخر مع

tmp=$@
newvar=${tmp%.txt}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top