صفحه: [1]
  چاپ صفحه  
نويسنده موضوع: آموزش مقدماتی Bash Script (قسمت 2)  (دفعات بازدید: 109 بار)
Hamed Aghamoradi
Newbie


امتیاز 0
تعداد ارسال: 2


« : اوت 08, 2011, 09:57:19 »

10 . مقایسه در bash
10. 1. مقایسه حسابی
-lt
-gt >
-le
-ge >=
-eq ==
-ne !=
کد:
#!/bin/bash
# declare integers
NUM1=2
NUM2=2
if [ $NUM1 -eq $NUM2 ]; then
echo "Both Values are equal"
else
echo "Values are NOT equal"
fi

کد:
#!/bin/bash
# declare integers
NUM1=2
NUM2=1
if [ $NUM1 -eq $NUM2 ]; then
echo "Both Values are equal"
else
echo "Values are NOT equal"
fi

کد:
#!/bin/bash
# declare integers
NUM1=2
NUM2=1
if   [ $NUM1 -eq $NUM2 ]; then
echo "Both Values are equal"
elif [ $NUM1 -gt $NUM2 ]; then
echo "NUM1 is greater then NUM2"
else
echo "NUM2 is greater then NUM1"
fi

10.2. مقایسه رشته
= برابر
!= نابرابر
کمتر از
> بزرگتر از
-n s1 رشته s1 خالی نیست
-z s1 رشته s1 خالی است
کد:
#!/bin/bash
#Declare string S1
S1="Bash"
#Declare string S2
S2="Scripting"
if [ $S1 = $S2 ]; then
echo "Both Strings are equal"
else
echo "Strings are NOT equal"
fi

کد:
#!/bin/bash
#Declare string S1
S1="Bash"
#Declare string S2
S2="Bash"
if [ $S1 = $S2 ]; then
echo "Both Strings are equal"
else
echo "Strings are NOT equal"
fi

11. تست فایل در bash
-b filename    Block special file
-c filename    Special character file
-d directoryname    Check for directory existence
-e filename    Check for file existence
-f filename    Check for regular file existence not a directory
-G filename    Check if file exists and is owned by effective group ID.
-g filename    true if file exists and is set-group-id.
-k filename    Sticky bit
-L filename    Symbolic link
-O filename    True if file exists and is owned by the effective user id.
-r filename    Check if file is a readable
-S filename    Check if file is socket
-s filename    Check if file is nonzero size
-u filename    Check if file set-ser-id bit is set
-w filename    Check if file is writable
-x filename    Check if file is executable
کد:
#!/bin/bash
file="./file"
if [ -e $file ]; then
echo "File exists"
else
echo "File does not exists"
fi


به طور مشابه برای مثال شما می توانید اط حلقه while loop برای اینکه بررسی کنید که فایلی ساخته نشده است اتفاده نمایید ، این اسکریپت در حالت sleep می ماند تا فایلی ایجاد نشده است، برای نفی کردن دستور از علامت ! استفاده می شود مثلا علامت ! در کنار گزینه e بر عکس گزینه e را انجام می دهد.
کد:
#!/bin/bash
 
while [ ! -e myfile ]; do
# Sleep until file does exists/is created
sleep 1
done
12. حلقه
12.1. حلقه for در bash
کد:
#!/bin/bash

# bash for loop
for f in $( ls /var/ ); do
echo $f
done
اجرای حلقه for در bash shell command line:
کد:
$ for f in $( ls /var/ ); do echo $f; done

12.2. حلقه while در bash
کد:
#!/bin/bash
COUNT=6
# bash while loop
while [ $COUNT -gt 0 ]; do
echo Value of count is: $COUNT
let COUNT=COUNT-1
done

12.3. حلقه until در bash
کد:
#!/bin/bash
COUNT=0
# bash until loop
until [ $COUNT -gt 5 ]; do
        echo Value of count is: $COUNT
        let COUNT=COUNT+1
done

12.4. کنترل bash loop with
در اینجا یک مثال در حالی که حلقه توسط ورودی استاندارد کنترل می شود. تا زنجیره تغییر مسیر از STDOUT به STDIN به دستور خواندن وجود دارد حلقه while ادامه می دهد.
کد:
#!/bin/bash
# This bash script will locate and replace spaces
# in the filenames
DIR="."
# Controlling a loop with bash read command by redirecting STDOUT as
# a STDIN to while loop
# find will not truncate filenames containing spaces
find $DIR -type f | while read file; do
# using POSIX class [:space:] to find space in the filename
if [[ "$file" = *[[:space:]]* ]]; then
# substitute space with "_" character and consequently rename the file
mv "$file" `echo $file | tr ' ' '_'`
fi;
# end of while loop
done

13. توابع در bash
کد:
!/bin/bash
# BASH FUNCTIONS CAN BE DECLARED IN ANY ORDER
function function_B {
        echo Function B.
}
function function_A {
        echo $1
}
function function_D {
        echo Function D.
}
function function_C {
        echo $1
}
# FUNCTION CALLS
# Pass parameter to function A
function_A "Function A."
function_B
# Pass parameter to function C
function_C "Function C."
function_D

14. انتخاب در bash
کد:
#!/bin/bash
 
PS3='Choose one word: '

# bash select
select word in "linux" "bash" "scripting" "tutorial"
do
  echo "The word you have selected is: $word"
# Break, otherwise endless loop
  break  
done

exit 0

15. انتخاب یک گزینه به صورت شرطی
کد:
#!/bin/bash
echo "What is your preferred programming / scripting language"
echo "1) bash"
echo "2) perl"
echo "3) phyton"
echo "4) c++"
echo "5) I do not know !"
read case;
#simple case bash structure
# note in this case $case is variable and does not have to
# be named case this is just an example
case $case in
    1) echo "You selected bash";;
    2) echo "You selected perl";;
    3) echo "You selected phyton";;
    4) echo "You selected c++";;
    5) exit
esac

خارج شده است

Hamed Aghamoradi
صفحه: [1]
  چاپ صفحه  
 
پرش به :