Script KSH: تشغيل بديل حرف يشبه Bash: $ 12/.txt/}
سؤال
لدي برنامج نصي KSH الذي يجب أن يبقى كذلك (بعض البرامج التي يديرها تصر على كونها KSH). أريد أن آخذ وسيطة الإدخال "Test.txt" وإزالة آخر 4 أحرف أو ابحث عن ".txt" واستبدالها مع أي شيء.
في باش سأفعل
NewVar=${@/.txt/}
هذا لا يعمل في KSH رغم ذلك. كيف يمكنني التخلص من .txt في Ksh؟ حاولت
bash -c 'NewVar=${@/.txt/}'
لكنه لم يعمل المتغير $ @ في هذه القشرة التي تم إنشاؤها حديثا.
شكرا،
دان
المحلول
لماذا لا تستخدم اسم الباشئة?
نصائح أخرى
لن يتيح لك KSH القيام بذلك باستخدام $ @، ولكن إذا قمت بتعيينها بمتغير مؤقت، فيمكنك القيام بذلك دون تصوير بروك آخر مع
tmp=$@
newvar=${tmp%.txt}
لا تنتمي إلى StackOverflow