Latest web development tutorials

المعلمات مرور قذيفة

يمكننا في تنفيذ البرنامج النصي شل لتمرير المعلمات إلى السيناريو، والسيناريو يأخذ المعلمات داخلشكل: $ ن.n تمثل عدد (1)، لتنفيذ أول من المعلمة النصي، 2 للمعلمة الثانية لتنفيذ البرنامج النصي، وهلم جرا ......

أمثلة

الأمثلة التالية نعبر ثلاث معلمات للنص، والمخرجات، حيث $ 0 هو اسم الملف لتنفيذ:

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

echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";

تعيين أذونات القابلة للتنفيذ لالسيناريو وتنفيذ السيناريو، والإخراج هو على النحو التالي:

$ chmod +x test.sh 
$ ./test.sh 1 2 3
Shell 传递参数实例!
执行的文件名:./test.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3

وبالإضافة إلى ذلك، هناك العديد من المعلمات للتعامل مع أحرف خاصة:

التعامل مع المعلمات تفسير
$ # أصدر عدد من المعلمات إلى برنامج نصي
$ * في سلسلة واحدة يعرض جميع المعلمات التي تم تمريرها إلى البرنامج النصي.
مثل "$ *" مع "" "حالة المغلقة، شكل" $ 1 $ 2 ... $ ن "إخراج جميع المعلمات.
$$ رقم معرف العملية الحالية من البرنامج النصي يعمل
$! أخيرا، وهي عملية تعمل في الخلفية رقم
$ @ * $ مع نفسه، ولكن عند استخدام علامات الاقتباس، وإرجاع كل معلمة في الاقتباس.
مثل "$ @" مع "" "حالة المغلقة، شكل" $ 1 "" $ 2 "..." $ ن "إخراج جميع المعلمات.
$ - يعرض قذيفة الخيار الحالي للاستخدام، و تعيين الأمر نفس الوظيفة.
يعرض حالة خروج من الأمر الأخير. 0 يدل على عدم وجود أخطاء، وأي قيمة أخرى تشير إلى وجود خطأ.
#!/bin/bash
# author:本教程
# url:www.w3big.com

echo "Shell 传递参数实例!";
echo "第一个参数为:$1";

echo "参数个数为:$#";
echo "传递的参数作为一个字符串显示:$*";

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

$ chmod +x test.sh 
$ ./test.sh 1 2 3
Shell 传递参数实例!
第一个参数为:1
参数个数为:3
传递的参数作为一个字符串显示:1 2 3

$ * و$ @ الفرق:

  • نفس النقطة: جميع الإشارات إلى جميع المعلمات.
  • الاختلافات: ينعكس فقط في علامات اقتباس مزدوجة. لنفترض تشغيل البرنامج النصي عند كتابة المعلمات الثلاث 1،2،3 ،، "*" ما يعادل "123" (تمرير معلمة)، و "@" ما يعادل "1"، "2"، " 3 "(مرت ثلاث معلمات).
#!/bin/bash
# author:本教程
# url:www.w3big.com

echo "-- \$* 演示 ---"
for i in "$*"; do
    echo $i
done

echo "-- \$@ 演示 ---"
for i in "$@"; do
    echo $i
done

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

$ chmod +x test.sh 
$ ./test.sh 1 2 3
-- $* 演示 ---
1 2 3
-- $@ 演示 ---
1
2
3