Написал скрипт для удобной маскировки пакетов в Gentoo. Синтаксис такой:
text
mask <package> <template> <version>
например:
text
mask vlc >= 2.0.0
Кусок скрипта:
text
pkg_name="$1"
if echo "$pkg_name" | grep "/" &>/dev/null
then
pkg_full_name="$pkg_name"
else
pkg_full_name=`FORMAT='<category>/<name>\n' eix -e "$pkg_name"`
if [ $? -ne 0 ]
then
echo $(color ltred)"Package "$pkg_name" not found!"$(color off)
exit 1
elif [ `echo "$pkg_full_name" | wc -l` -ne 1 ]
then
echo $(color ltyellow)"Too much results for "$pkg_name""$(color off)
exit 1
fi
fi
if [ -z "$2" ]
then
if grep ="$pkg_full_name"-9999 "$mask_file" &>/dev/null
then
echo $(color ltyellow)""$pkg_full_name"-9999 has been masked already"$(color off)
exit 1
else
echo "="$pkg_full_name"-9999" >> "$mask_file"
echo $(color ltgreen)""$pkg_full_name"-9999 has been masked"$(color off)
fi
else
mask_file_line="$2""$pkg_full_name"-"$3"
if grep "$mask_file_line" "$mask_file" &>/dev/null
then
echo $(color ltyellow)""$mask_file_line" has been masked already"$(color off)
exit 1
else
echo "$mask_file_line" >> "$mask_file"
echo $(color ltgreen)""$mask_file_line" has been masked"$(color off)
fi
fi
так работает нормально:
text
nona ~ # mask vlc = 2.0.0
=media-video/vlc-2.0.0 has been masked
а вот так - ненормально:
text
nona ~ # mask vlc <= 2.0.0
2.0.0media-video/vlc- has been masked
Почему строка оказывается переколбашенной?