хочу создать свою функцию на bash чтоб принимала параметры
есть ли такая возможность?
#!/bin/bash
function f1($t)
{
echo $t
}
read text
echo $text
f1($text)
тут выдает line 9: syntax error: unexpected end of file
функции в shell (хочу создать функцию в bash)
Модераторы: /dev/random, Модераторы разделов
-
- Сообщения: 3321
- Статус: Красный глаз тролля
- ОС: ArchLinux
Re: функции в shell
Код: Выделить всё
#!/bin/bash
function a()
{
echo $1
}
read test
a $test
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка

-
- Сообщения: 95
- ОС: Debian Wheezy i686
Re: функции в shell
а что нужно чтоб функция возвращала результат
Код: Выделить всё
#!/bin/bash
function a()
{
echo $1
return $1
}
read test
t= a $test
echo $t
-
- Сообщения: 3321
- Статус: Красный глаз тролля
- ОС: ArchLinux
Re: функции в shell
function - по сути встроенный bash-скрипт. Поэтому возвращать результаты в таком виде, как вы хотите, она не может (только числовые значения от 0 до 255). Если необходимо вывести что-нибудь из функции, делайте export VAR=$1, т.е. передавайте значения через внутренние переменные. Или же можно записывать внутри функции вывод в файл, а потом из него считывать информацию.
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка

-
- Бывший модератор
- Сообщения: 4458
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: функции в shell
eddy писал(а): ↑16.12.2008 14:39function - по сути встроенный bash-скрипт. Поэтому возвращать результаты в таком виде, как вы хотите, она не может (только числовые значения от 0 до 255). Если необходимо вывести что-нибудь из функции, делайте export VAR=$1, т.е. передавайте значения через внутренние переменные. Или же можно записывать внутри функции вывод в файл, а потом из него считывать информацию.
Зачем файл, зачем внешние переменные?
Код: Выделить всё
function example_function()
{
local var_int=${1-0}; # Если параметры функции не переданы, использовать 0
let var_int++;
printf "%d\n" $var_int;
}
extern_var_int=$(example_function 7);
printf "%d\n" $extern_var_int; # Выведет «8»
-
- Сообщения: 95
- ОС: Debian Wheezy i686
Re: функции в shell
А как на tcsh функцию написать?И что б делала аналогично примеру выше.