هل هناك فرق بين استخدام تنضيدها في ksh ببساطة وضع متغير ؟
سؤال
هي التالية 2 خطوط تماما ما يعادل?إن لم يكن ما هو الفرق ؟ لقد رأيت الكثير من البرامج النصية قذيفة الاستفادة من رقم 1 و أتساءل فقط ما يعطيك مقارنة مع عدد 2.
typeset TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
المحلول
typeset
سيتم إنشاء متغير محلي (التي لا "تسرب").وهذا مفيد في الوظائف ولكن رأيت أيضا استخدامه على أعلى مستوى من قذيفة النصي.
a=0
function x {
typeset a=1
}
x
echo $a
function y {
a=2
}
y
echo $a
طباعة
0
2
يمكنك أيضا استخدام typeset
لإنشاء المصفوفات و الاعداد الصحيحه.
[عدل] وأضاف function
الكلمة لأن بعض قذائف تتطلب ذلك.لإزالته إذا كان يسيء shell الخاص بك ولكن يجب أن تعمل مع معظم إصدارات.
نصائح أخرى
منذ shell scripting هي فضفاضة كتابة اللغة (التي متغيرات لن يكون datytype) يمكننا استخدام تنضيدها لتعيين متغير معين على نفس نوع البيانات من القيم فقط.
لا تنتمي إلى StackOverflow