Latest web development tutorials

شل؟ المتغير

المتغيرات قذيفة

عند تعريف متغير، واسم متغير بدون علامة الدولار ($، والمتغيرات لغة PHP الحاجة)، مثل:

your_name="w3big.com"

لاحظ أن هناك مسافة بين اسم المتغير والمساواة، والتي قد تكون مألوفة بالنسبة لك وجميع لغات البرمجة ليست هي نفسها. وفي الوقت نفسه، يجب أن يتبع اسم متغير هذه القواعد تسمية:

  • يجب أن يكون الحرف الأول حرف (الألف إلى الياء، من الألف إلى الياء).
  • بدون مسافات، واستخدام السطر (_).
  • لا يمكنك استخدام علامات الترقيم.
  • لا يمكنك استخدام باش في الكلمة (مساعدة الأوامر لعرض كلمات محفوظة المتاحة).

بالإضافة إلى صراحة احالة المباشر، يمكنك أيضا تعيين قيم للمتغيرات مع عبارات مثل:

for file in `ls /etc`

العبارة أعلاه اسم الملف / الخ دليل من التداول.


استخدام المتغيرات

استخدام متغير محددة، طالما أن اسم المتغير مسبوقة بعلامة الدولار، مثل هذا:

your_name="qinjx"
echo $your_name
echo ${your_name}

اسم المتغير خارج الأقواس المعقوفة اختيارية، بالإضافة إلى دون كل الحق، إضافة الأقواس للمساعدة في شرح المتغيرات تحديد الحدود، مثل الحالة التالية:

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

إذا كنت لا تعطي المتغيرات المهارة بالإضافة إلى الأقواس، وكتب صدى "أنا أجيد $ skillScript"، ومترجم وضعت $ skillScript كمتغير (قيمتها فارغة)، بتنفيذ التعليمات البرمجية ليست نتيجة نتوقع نفسه مرة أخرى.

أخبر جميع المتغيرات الأقواس، وهو ممارسة البرمجة الجيدة.

متغيرات محددة، يمكن إعادة تعريف، مثل:

your_name="tom"
echo $your_name
your_name="alibaba"
echo $your_name

الكتابة هو قانوني، لكن لاحظ أنه عندما المهمة الثانية لا يمكن كتابة $ your_name = "علي بابا"، استخدم متغير عندما يتم إضافته إلى علامة الدولار ($).

قراءة فقط متغيرات

استخدام الأمر يمكن تعريف المتغيرات للقراءة فقط للقراءة فقط المتغير، وقيمة للقراءة فقط متغيرات لا يمكن أن تتغير.

الأمثلة التالية في محاولة لتغيير المتغيرات للقراءة فقط، ويجري أعطت النتائج:

#!/bin/bash
myUrl="http://www.w3cschool.cc"
readonly myUrl
myUrl="http://www.w3big.com"

تشغيل البرنامج النصي مع النتائج التالية:

/bin/sh: NAME: This variable is read only.

إزالة متغير

استخدام الأمر ضبطه لحذف متغير. بناء الجملة:

unset variable_name

متغير لا يمكن إعادة استخدامها بعد إزالتها. القيادة ضبطه لا يمكن إزالة المتغيرات للقراءة فقط.

أمثلة

#!/bin/sh
myUrl="http://www.w3big.com"
unset myUrl
echo $myUrl

والأمثلة على تنفيذ ما سبق ليس لديهم الانتاج.

أنواع متغير

عند تشغيل قذيفة، سيكون هناك ثلاث معلمات في وقت واحد:

  • 1) المتغيرات المحلية المتغيرات المحلية المحددة في البرنامج النصي أو قيادة صالحة فقط في المقام قذيفة الحالي، برنامج قذيفة بدء التشغيل الأخرى لا يمكن الوصول إلى المتغيرات المحلية.
  • 2) المتغيرات البيئية التي جميع البرامج، بما في ذلك برنامج قذيفة، يمكن الوصول إلى متغيرات البيئة، تتطلب بعض التطبيقات متغيرات البيئة لضمان تشغيلها العادي. عند الضرورة، يمكن للشيل أيضا تحديد متغيرات البيئة.
  • 3) المتغيرات قذيفة قذيفة المتغير هو متغير خاص التي وضعها برنامج قذيفة. قذيفة جزء متغير متغير البيئة، وبعضها المتغيرات المحلية لضمان سير العمل العادي للقذيفة

سلسلة قذيفة

سلسلة قذيفة البرمجة أنواع البيانات الأكثر شيوعا ومفيدة (باستثناء الأرقام والسلاسل، وتفتقر أيضا أنواع أخرى من مفيد)، ويمكن أن يتم وضع السلاسل في علامات الاقتباس المفردة، ويمكن أيضا التنصيص أن تستخدم، أو قد لا يكون في علامات اقتباس. الفرق بين علامات اقتباس مفردة ومزدوجة مع PHP مشابه.

ونقلت واحدة

str='this is a string'

سلاسل القيود واحدة نقلت:

  • أي الأحرف في علامات الاقتباس المفردة هي ناتج عن علامات الاقتباس المفردة في متغير سلسلة غير صالح.
  • لا يمكن أن تظهر السلاسل بين علامات الاقتباس واحدة في اقتباس واحد (استخدام علامات الاقتباس المفردة بعد حرف الهروب ولا).

التنصيص

your_name='qinjx'
str="Hello, I know your are \"$your_name\"! \n"

ضعف يقتبس من المزايا:

  • يمكن التنصيص يكون متغير
  • يمكن أن تظهر علامات الاقتباس المزدوجة حرف الهروب

سلسلة سلسلة

your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1

احصل على طول السلسلة

string="abcd"
echo ${#string} #输出 4

استخراج فرعية

الأمثلة التالية من السلسلتين الأولى الطابع تبدأ التقاط أربعة أحرف:

string="w3big is a great site"
echo ${string:1:4} # 输出 unoo

البحث فرعية

البحث عن الحرف أو الصورة" الموقف:

string="w3big is a great company"
echo `expr index "$string" is`  # 输出 8

ملاحظة: البرنامج النصي أعلاه "` "معاداة نقلت بدلا من علامات الاقتباس المفردة لا تضلوا" ' "، اه.


قذيفة مجموعة

باش يدعم مجموعة ذات بعد واحد (لا تدعم المصفوفات متعددة الأبعاد)، ولا يحدد حجم المصفوفة.

على غرار لغة C، منخفض من عناصر مجموعة من الرقم 0 البداية. يحصل على مجموعة من العناصر للاستفادة من منخفض، قد يكون منخفض عدد صحيح أو التعبير الحسابي الذي يجب أن يكون أكبر من أو يساوي 0 قيمة.

تحديد المصفوفات

في شل، استخدام الأقواس للدلالة على مجموعة، وعناصر مجموعة مع رموز "الفضاء" فصل. يتم تعريف الشكل العام للمجموعة على النحو التالي:

数组名=(值1 值2 ... 值n)

على سبيل المثال:

array_name=(value0 value1 value2 value3)

أو

array_name=(
value0
value1
value2
value3
)

يمكنك أيضا تحديد بشكل منفصل لكل مكون من مجموعة:

array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

لا يمكنك استخدام مؤشر المستمر، وليس هناك حد تحت النطاق المستهدف.

قراءة مجموعة

تتم قراءة الشكل العام قيمة عنصر صفيف:

${数组名[下标]}

على سبيل المثال:

valuen=${array_name[n]}

استخدام الرمز @ يمكن الحصول على مجموعة واسعة من جميع العناصر، مثل:

echo ${array_name[@]}

احصل على طول المصفوفة

يحصل على مجموعة من أطوال طول السلسلة والحصول على نفس الطريق، وعلى سبيل المثال:

# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}

قذيفة ملاحظات

تمشيا مع "#" في بداية التعليق، سيتم تجاهلها من قبل المترجم.

ش لا يوجد أي تعليق متعدد الخطوط، يستطيع كل سطر فقط إضافة علامة #. فقط من هذا القبيل:

#--------------------------------------------
# 这是一个注释
# author:本教程
# site:www.w3big.com
# slogan:学的不仅是技术,更是梦想!
#--------------------------------------------
##### 用户配置区 开始 #####
#
#
# 这里可以添加脚本描述信息
# 
#
##### 用户配置区 结束  #####

إذا كانت عملية التنمية، تواجه أجزاء كبيرة من التعليمات البرمجية في حاجة إلى التعليق مؤقتا بعد حين، وuncommented، كيف نفعل ذلك؟

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