Дата:2013-01-29
Ранее:
5) Управление вводом и выводом в сценариях
Функции в Bash применяются для написания одного и того же кода в нескольких местах сценария с последующей возможностью подключения файла функций в сценарий или использование функции в командной строке..
Создается
функция очень легко:
function
function1 {
echo "Наша первая функция"
}
Пример 1
#!/bin/bash
function function1 {
echo "Привет"
}
count=1
while [ $count -le 3 ]
do
function1
count=$[ $count + 1 ]
done
echo "повторим"
function1
Пример 1.1
#!/bin/bash
function function1 {
prm1='echo "Привет"'
count=1
while [ $count -le 3 ]
do
$prm1
count=$[ $count + 1 ]
done }
echo "повторим1"
function1
echo "повторим2"
function1
Пример 2
#!/bin/bash
function function1 {
echo "Привет"
}
function function2 {
echo "Привет 2"
}
count=1
while [ $count -le 3 ]
do
function1
count=$[ $count + 1 ]
done
echo "повторим"
function1
echo "Функция2"
function2
Статус
выхода функции - определяется возвращенной
последней командой функции.
#!/bin/bash
function ping1 {
ping -c 1 ya.ru &> /dev/null
}
function ping2 {
ping nippppp.gf &> /dev/null
}
function lsa {
ls -al test
}
ping1
echo "Статус выхода функции ping2 $?"
ping2
echo "Статус выхода функции ping2 $?"
lsa
echo "Статус выхода программы ls $?"
Переменная в функции
#!/bin/bash
function prm {
ls -al testFiles
}
#можно вывести так
prm
# А можно как переменную
prm1=`prm`
echo "Переменная: $prm1"
Давайте вспомним, что в сценарий можно передавать параметры.
Примером может стать простое математическое выражение:
# vi summ
#!/bin/bash
var1=$[ $1 + $2 ]
echo "Умножение: $var1"
# sh summ 2 10
- происходит простое сложение.
Так же можно и в функцию добавлять параметры из командной строки
Пример 1
# vi summ2
#!/bin/bash
function summ {
echo $[ $1 + $2 ]
}
value=`summ $1 $2`
echo "$value"
# sh summ 2 10
Пример 2
# vi funct
#!/bin/bash
function func1 {
echo $[$1 * $2 - $3]
}
if [ $# -eq 3 ]
then
val=`func1 $1 $2 $3`
echo "$val"
else
echo "Используйте три параметра"
echo "Пример: sh summ 20 3 6"
fi
# sh funct 4 5 3
Локальные и глобальные переменные в функциях.
В функциях используются два вида переменных.
Одни видны во всем скрипте, а другие только в области определения
функции и не выходят за ее пределы.
Проверьте, что выйдет в двух вариантах
Пример 1.1 - Глобальная переменная
#!/bin/bash
function function1 {
var1=$[ 5+6 ]
var2=$[ 4-3 ]
}
var1=$[ 15-6 ]
var2=$[ 14-3 ]
function1
if (( $var1 <= $var2 ))
then
echo " $var1 меньше $var2 "
else
echo " $var1 больше $var2 "
fi
#!/bin/bash
function function1 {
local var1=$[ 5+6 ]
local var2=$[ 4-3 ]
}
var1=$[ 15-6 ]
var2=$[ 14-3 ]
function1
if (( $var1 <= $var2 ))
then
echo " $var1 меньше $var2 "
else
echo " $var1 больше $var2 "
fi
Массивы в функции
Вызывает все
#!/bin/bash
prm1=(1 2 3 4 5 6 7 8 9)
echo ${prm1[*]}
Вызывает пятое указанное значение
#!/bin/bash
prm1=(1 2 3 4 5 6 7 8 9)
echo ${prm1[5]}
Давайте посмотрим на пример
#!/bin/bash
function func1 {
array=(`echo "$@"`)
echo "${array[*]}"
}
mass=(1 2 3)
echo "Здесь просто выводится массив: ${mass[*]}"
func1 ${mass[*]}
Библиотеки Bash
Для того что бы вызвать повторяющуюся функцию в нужном нам сценарии
необходимо просто создать файл функций
# vi bibl1
function
func1 {
echo $[$1 * $2 - $3]
}
Указать место расположение (подключить его к сценарию)
#!/bin/bash
. /func/bibl1
if [ $# -eq 3 ]
then
val=`func1 $1 $2 $3`
echo "$val"
else
echo "Используйте три параметра"
echo "Пример: sh summ 20 3 6"
fi
Более того:
Функцию можно определить в файле .bashrc, после того как Вы перезапустите Linux функцию можно так же вставлять в скрипт не указывая место расположение файла функций. Более того функцию можно использовать сразу в командной строке.
Далее >>> Bash - создание пользовательского меню
Microsoftbuy скупает программы Microsoft в любом состоянии. Дорого оцениваем новые, а так же запечатанные комплекты от MS Windows и других вендоров. Чуть ниже оцениваются активированные и вскрытые версии.
Количество просмотров: 9233
Комментарии к статье:
Добавить комментарий
Автор комментария: Дмитрий
Дата: 2015-09-18
Ужасно.