Latest web development tutorials

مشغلي الأساسية قذيفة

شل وغيرها من لغات البرمجة، ويدعم مجموعة متنوعة من المشغلين، بما في ذلك:

  • العوامل الحسابية
  • مشغلي العلائقية
  • العوامل المنطقية
  • مشغلي سلسلة
  • ملف اختبار مشغلي

باش الأصلي لا يدعم عمليات حسابية بسيطة، ولكن لا يمكن أن يتحقق من خلال أوامر أخرى، مثل AWK وEXPR، EXPR الأكثر شيوعا.

EXPR هو أداة حساب التعبير، واستخدامها لإتمام العملية مقيم التعبير.

على سبيل المثال، لإضافة رقمين (لاحظ استخدام `مكافحة اقتباس علامات بدلا من علامات الاقتباس المفردة '):

#!/bin/bash

val=`expr 2 + 2`
echo "两数之和为 : $val"

تشغيل المثال »

تنفيذ البرنامج النصي، والناتج هو على النحو التالي:

两数之和为 : 4

تجدر الإشارة إلى أمرين:

  • بين تعبيرات ومشغلي يجب أن يكون الفضاء، على سبيل المثال، 2 + 2 من الخطأ، يجب أن تكتب 2 + 2، ونحن على دراية معظم لغات البرمجة ليست هي نفسها.
  • التعبير الكامل ليكون `` الواردة، لاحظ أن هذه الشخصية لا تستخدم عادة في علامات الاقتباس المفردة، دون مفتاح خروج.

العوامل الحسابية

يسرد الجدول التالي عوامل التشغيل الحسابية المشتركة، على افتراض متغير 10، والمتغير b هو 20:

مشغلي تفسير أمثلة
+ إضافة `EXPR $ ل+ $ b` في النتيجة هي 30.
- طرح `$ EXPR ل- $ b` في النتيجة -10.
* ضرب `EXPR أمريكي لل\ * النتائج $ b` في 200.
/ تقسيم `EXPR $ ب / $ نتيجة A` هو 2.
٪ بقية `EXPR $ ب٪ نتيجة $ A` هي 0.
= مهمة و= $ ب ب متغير وتعيين قيمة.
== على قدم المساواة. تستخدم للمقارنة بين الأرقام، وبنفس العودة الحقيقية. [$ A $ == ب] ترجع كاذبة.
! = لا تساوي. تستخدم للمقارنة بين الأرقام ليست هي نفسها العوائد الحقيقية. [$ A! = $ B] بإرجاع صحيح.

ملاحظة: يجب وضع التعبير الشرطي بين قوسين معقوفين، وتشمل مساحة، على سبيل المثال:[$ ل== $ ب] خاطئة ويجب أن تكون مكتوبة كما[$ ل== $ ب].

أمثلة

العوامل الحسابية الأمثلة هي على النحو التالي:

#!/bin/bash
# author:本教程
# url:www.w3big.com

a=10
b=20

val=`expr $a + $b`
echo "a + b : $val"

val=`expr $a - $b`
echo "a - b : $val"

val=`expr $a \* $b`
echo "a * b : $val"

val=`expr $b / $a`
echo "b / a : $val"

val=`expr $b % $a`
echo "b % a : $val"

if [ $a == $b ]
then
   echo "a 等于 b"
fi
if [ $a != $b ]
then
   echo "a 不等于 b"
fi

تنفيذ البرنامج النصي، والناتج هو على النحو التالي:

a + b : 30
a - b : -10
a * b : 200
b / a : 2
b % a : 0
a 不等于 b

ملاحظة:

  • يجب أن تضاف علامة الضرب (*) أمام مائل (\) من أجل تحقيق الضرب.
  • إذا ... ثم ... فأي العبارات الشرطية، وسيتم تغطية متابعة.
  • في وعاء MAC من جملة EXPR هو: $ ((التعبير))، حيث التعبير "*" في حاجة إلى الهروب رمز "\".

مشغلي العلائقية

العلائقية فقط دعم الرقمية، لا تدعم سلسلة، إلا قيمة السلسلة عبارة عن رقم.

يسرد الجدول التالي العوامل العلائقية التي يشيع استخدامها، على افتراض متغير 10، والمتغير b هو 20:

مشغلي تفسير أمثلة
-eq الكشف عن ما إذا كان رقمين على قدم المساواة، والعودة على قدم المساواة الحقيقية. [$ A $ -eq ب] ترجع كاذبة.
-ne الكشف عن ما إذا كان رقمين على قدم المساواة، لا يعود متساوية صحيح. [$ A $ ب -ne] ترجع الحقيقية.
-gt اليسار هو أكبر من عدد الكشف على حق، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ A $ ب -gt] ترجع كاذبة.
-lt كشف عدد أقل من اليمين لليسار، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ A $ ب -lt] ترجع الحقيقية.
-ge الكشف عن ما إذا كان عدد يساوي حق الجانب الأيسر من كبير، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ A $ ب -ge] ترجع كاذبة.
-le إذا كان عدد من الكشف عن أقل من أو يساوي إلى اليمين إلى اليسار، وإذا كان كذلك، فإنه يعود صحيحا. [$ A $ ب -le] ترجع الحقيقية.

أمثلة

العلائقية الأمثلة هي على النحو التالي:

#!/bin/bash
# author:本教程
# url:www.w3big.com

a=10
b=20

if [ $a -eq $b ]
then
   echo "$a -eq $b : a 等于 b"
else
   echo "$a -eq $b: a 不等于 b"
fi
if [ $a -ne $b ]
then
   echo "$a -ne $b: a 不等于 b"
else
   echo "$a -ne $b : a 等于 b"
fi
if [ $a -gt $b ]
then
   echo "$a -gt $b: a 大于 b"
else
   echo "$a -gt $b: a 不大于 b"
fi
if [ $a -lt $b ]
then
   echo "$a -lt $b: a 小于 b"
else
   echo "$a -lt $b: a 不小于 b"
fi
if [ $a -ge $b ]
then
   echo "$a -ge $b: a 大于或等于 b"
else
   echo "$a -ge $b: a 小于 b"
fi
if [ $a -le $b ]
then
   echo "$a -le $b: a 小于或等于 b"
else
   echo "$a -le $b: a 大于 b"
fi

تنفيذ البرنامج النصي، والناتج هو على النحو التالي:

10 -eq 20: a 不等于 b
10 -ne 20: a 不等于 b
10 -gt 20: a 不大于 b
10 -lt 20: a 小于 b
10 -ge 20: a 小于 b
10 -le 20: a 小于或等于 b

العوامل المنطقية

يسرد الجدول التالي العوامل المنطقية التي تستخدم عادة، على افتراض متغير 10، والمتغير b هو 20:

مشغلي تفسير أمثلة
! غير عملية، والتعبير عوائد حقيقية كاذبة، وإلا فإنها ترجع صحيح. [! خطأ] يعود صحيحا.
-o أو العملية، هناك تعبير حقيقي يعود صحيحا. [$ A -lt 20 -o $ ب -gt 100] ترجع الحقيقية.
-a والعمليات، تعبيرين صحيحة قبل أن تعود صحيح. [$ A -lt 20 -A $ ب -gt 100] يعود كاذبة.

أمثلة

العوامل المنطقية الأمثلة هي على النحو التالي:

#!/bin/bash
# author:本教程
# url:www.w3big.com

a=10
b=20

if [ $a != $b ]
then
   echo "$a != $b : a 不等于 b"
else
   echo "$a != $b: a 等于 b"
fi
if [ $a -lt 100 -a $b -gt 15 ]
then
   echo "$a -lt 100 -a $b -gt 15 : 返回 true"
else
   echo "$a -lt 100 -a $b -gt 15 : 返回 false"
fi
if [ $a -lt 100 -o $b -gt 100 ]
then
   echo "$a -lt 100 -o $b -gt 100 : 返回 true"
else
   echo "$a -lt 100 -o $b -gt 100 : 返回 false"
fi
if [ $a -lt 5 -o $b -gt 100 ]
then
   echo "$a -lt 100 -o $b -gt 100 : 返回 true"
else
   echo "$a -lt 100 -o $b -gt 100 : 返回 false"
fi

تنفيذ البرنامج النصي، والناتج هو على النحو التالي:

10 != 20 : a 不等于 b
10 -lt 100 -a 20 -gt 15 : 返回 true
10 -lt 100 -o 20 -gt 100 : 返回 true
10 -lt 100 -o 20 -gt 100 : 返回 false

مشغلي منطقية

فيما يلي وصف المشغل شل المنطقي، على افتراض متغير 10، والمتغير b هو 20:

مشغلي تفسير أمثلة
&& منطقية و [[$ A -lt 100 && $ ب -gt 100]] عودة كاذبة
|| OR منطقية [[$ A -lt 100 || $ ب -gt 100]] عودة صحيح

أمثلة

أمثلة من العوامل المنطقية هي كما يلي:

#!/bin/bash
# author:本教程
# url:www.w3big.com

a=10
b=20

if [[ $a -lt 100 && $b -gt 100 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi

if [[ $a -lt 100 || $b -gt 100 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi

تنفيذ البرنامج النصي، والناتج هو على النحو التالي:

返回 false
返回 true

مشغلي سلسلة

يسرد الجدول التالي استخداما عوامل تشغيل سلسلة، وافترض أنه متغير "اي بي سي"، والمتغير b هي "المجموعة المالية":

مشغلي تفسير أمثلة
= كشف خيوط هما على قدم المساواة، والعودة على قدم المساواة الحقيقية. [$ A = $ ب] ترجع كاذبة.
! = الكشف عن ما إذا سلسلتين على قدم المساواة، لا يعود متساوية صحيح. [$ A! = $ B] بإرجاع صحيح.
-z الكشف عن ما إذا كان طول السلسلة 0 ل 0 عوائد صحيح. [-z $ A] ترجع كاذبة.
-n الكشف عن ما إذا كان طول السلسلة هو 0، غير صفر عودة صحيح. [-n $ A] يعود صحيحا.
شارع الكشف عن ما إذا كانت سلسلة فارغة، لا عودة فارغة الحقيقية. [$ A] يعود صحيحا.

أمثلة

مشغلي سلسلة الأمثلة هي على النحو التالي:

#!/bin/bash
# author:本教程
# url:www.w3big.com

a="abc"
b="efg"

if [ $a = $b ]
then
   echo "$a = $b : a 等于 b"
else
   echo "$a = $b: a 不等于 b"
fi
if [ $a != $b ]
then
   echo "$a != $b : a 不等于 b"
else
   echo "$a != $b: a 等于 b"
fi
if [ -z $a ]
then
   echo "-z $a : 字符串长度为 0"
else
   echo "-z $a : 字符串长度不为 0"
fi
if [ -n $a ]
then
   echo "-n $a : 字符串长度不为 0"
else
   echo "-n $a : 字符串长度为 0"
fi
if [ $a ]
then
   echo "$a : 字符串不为空"
else
   echo "$a : 字符串为空"
fi

تنفيذ البرنامج النصي، والناتج هو على النحو التالي:

abc = efg: a 不等于 b
abc != efg : a 不等于 b
-z abc : 字符串长度不为 0
-n abc : 字符串长度不为 0
abc : 字符串不为空

ملف اختبار مشغلي

يستخدم مشغل اختبار ملف للكشف عن مجموعة متنوعة من سمات الملف يونكس.

السمة وصف الكشف على النحو التالي:

مشغلي تفسير أمثلة
ملف -b الكشف عن ما إذا كان الملف هو ملف الجهاز كتلة، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ الملف -b] ترجع كاذبة.
ملف -c الكشف عن ما إذا كان الملف هو ملف جهاز حرف، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ الملف -c] ترجع كاذبة.
ملف -d الكشف عن ما إذا كان الملف عبارة عن دليل، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ الملف -d] ترجع كاذبة.
ملف -f الكشف عن ما إذا كان الملف هو ملف العادي (لا دليل أو جهاز الملف)، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ ملف -f] يعود صحيحا.
ملف -g الكشف عن ما إذا كان ملف يحتوي بت SGID، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ الملف -g] ترجع كاذبة.
ملف -k الكشف عن ما إذا كان ملف لديه قليلا لزجة (بت مثبت)، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ الملف -k] ترجع كاذبة.
ملف -p الكشف عن ما إذا كان الملف هو إخراج مسمى، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ الملف -p] ترجع كاذبة.
ملف -u الكشف عن ما إذا كان ملف لديه قليلا SUID، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ الملف -u] ترجع كاذبة.
ملف -r يكشف ما إذا كان ملف قابل للقراءة، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ الملف -r] يعود صحيحا.
ملف -w الكشف عن ما إذا كان الملف يمكن أن تكون مكتوبة، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ الملف -w] يعود صحيحا.
ملف -x الكشف عن ما إذا كان الملف القابل للتنفيذ، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ الملف -x] يعود صحيحا.
ملف -s الكشف عن ما إذا كان الملف فارغ (حجم الملف أكبر من 0)، وليس العودة فارغة الحقيقية. [$ الملف -s] يعود صحيحا.
ملف -e كشف ملف (بما في ذلك دليل) موجودا، وإذا كان الأمر كذلك، فإنه يعود صحيحا. [$ الملف -e] يعود صحيحا.

أمثلة

ملف متغير يشير إلى ملف "/var/www/w3big/test.sh"، حجمه 100 بايت، مع أذونات RWX. سوف التعليمة البرمجية التالية الكشف عن سمات مختلفة من الملف:

#!/bin/bash
# author:本教程
# url:www.w3big.com

file="/var/www/w3big/test.sh"
if [ -r $file ]
then
   echo "文件可读"
else
   echo "文件不可读"
fi
if [ -w $file ]
then
   echo "文件可写"
else
   echo "文件不可写"
fi
if [ -x $file ]
then
   echo "文件可执行"
else
   echo "文件不可执行"
fi
if [ -f $file ]
then
   echo "文件为普通文件"
else
   echo "文件为特殊文件"
fi
if [ -d $file ]
then
   echo "文件是个目录"
else
   echo "文件不是个目录"
fi
if [ -s $file ]
then
   echo "文件不为空"
else
   echo "文件为空"
fi
if [ -e $file ]
then
   echo "文件存在"
else
   echo "文件不存在"
fi

تنفيذ البرنامج النصي، والناتج هو على النحو التالي:

文件可读
文件可写
文件可执行
文件为普通文件
文件不是个目录
文件不为空
文件存在