Есть вот такие вот функции
function parse_search_posts()
# filename
{
shell_args 1 $@
local _oldIFS="$IFS"
IFS=$'\n'
echo_info_n "posts: "
list_posts=( \
$( grep "foo bar" "$1" \
| egrep -o "$grep_quoted_https" \
| grep $site_static \
| uniq ) )
post_total=${#list_posts[@]}
echo_info "${#list_posts[@]}"
IFS="$_oldIFS"
if [ "$post_total" -eq "0" ]
then
echo_info "no posts found"
return
fi
}
function parse_search_descs()
# filename
{
shell_args 1 $@
local _oldIFS="$IFS"
IFS=$'\n'
echo_info_n "posts: "
list_descs=( \
$( grep "bar baz" "$1" \
| grep "bar foo" "$1" \
| grep $site_static \
| uniq ) )
desc_total=${#list_descs[@]}
echo_info "${#list_descs[@]}"
IFS="$_oldIFS"
if [ "$desc_total" -eq "0" ]
then
echo_info "no descs found"
shell_die
fi
}
Есть еще с полдесятка таких функций, отличающиеся только переменной и командами на выполнение. Хочу их сжать в одну - шаблонную примерно так:
function parse_search_template()
# filename commands variable text
{
shell_args 4 $@
local _oldIFS="$IFS"
IFS=$'\n'
echo_info_n "$text: "
<...>=( $( eval $commands ) )
elem_total=${#<...>[@]}
echo_info "${#<...>[@]}"
IFS="$_oldIFS"
if [ "$elem_total" -eq "0" ]
then
echo_info "no $text found"
shell_die
fi
}
Как мне в функцию прокинуть переменную <variable> чтобы в нее писалось? Если нельзя прокинуть переменную напрямую, то как можно это обойти?
Да, только bash. Perl\Python\etc лесом.