BASH - скрипт для пересборки пакетов

Спасибо, это я хотел сделать, но немного попозже :D Пока что меня интересует вопрос - как взять строчку из файла и подставить ее makepkg. А после удачного (или не очень) завершения - взять следующую строчку и опять подставить ее makepkg :> Это возможно реализовать, скажем, с помощью tail?

EDIT: Так, подумав, получилось что-то вроде (тестовый кусок!):
PKGNUMBER=1
a () {
for PKGNUMBER in $(cat ~/localrepo | awk '{ print $PKGNUMBER }'); do
	echo $PKGNUMBER
	PKGNUMBER=PKGNUMBER+1
done
}
a

Что скажете? Вроде работает…

Содержимое ~/localrepo:
clementine freedcpp-svn kvirc4-svn kvirc4-svn-nokde lazarus-latest libfm-git pcmanfm-git psi-plus psi-plus-webkit urtconnector-svn vacuum-svn wine-camerapatch
Только вот ошибки в файле, например лишний пробел, могут привести к…
Можно ипробовать в роли “диспетчера строк” sed, он может выдавать “на гора”
нужные строки по regexp и по номеру. Правда man у него - пипец какой-то.
Такс, он начал собирать по списку :D А как его теперь остановить при завершении списка? Скрипт выложил себе на сервачок: http://pozitpoh.is-a-geek.org/projects/ … rebuild.sh
Бамп :D

Нужна помощь с определением интерактивности запуска (то есть в консоли или двойным щелчком). Два часа почти гуглил - ничего путного не нагуглил (примеры нерабочие). ABSG в этой области тоже помалкивает. Есть соображения?
pacman -Ss dialog ?
Разберемся, голубчик!
Да, я в курсе (правда, собираюсь zenity пользовать). Мне нужно именно проверить метод запуска скрипта (то есть запущен он из терминала или же даблкликом). Это реально?
tty -s && is_shell=1 || is_shell=0

запустишь из оболочки is_shell будет 1, запустишь из файлового манагера - is_shell будет 0.
systemd должен умереть.
И еще тупой вопрос =\ Перекурил больше половины ABSG, однако:
Скрипт игнорирует EXITCODE. В начале скрипта имеем:
EXITCODE=$?
Кусок основного кода:
cd $PKGBUILDSPATH/$2 &> /dev/null
if [ $EXITCODE != 0 ]; then
	echo -e "\033[1;36m===>\033[1;31mPKGBUILD for $2 not found!\033[0m"
	exit 200
fi
Однако условие IF не выполняется, если EXITCODE не равен 0 (а он не должен быть равен, если каталог $2 не существует). Работает такой кусок:
cd $PKGBUILDSPATH/$2 &> /dev/null || echo -e "\033[1;36m===>\033[1;31m PKGBUILD for $2 not found! \033[0m" && exit 200[/code]
Но хотелось бы решение покрасивее и читабельнее. Это возможно?
Зачем проверять на неравность нулю, если это делается автоматически? Потом нельзя вот так взять и переопределить переменную $?, после каждой операции Bash обновляет переменную $?, вписывая туда код возврата, но это совершенно не означает, что переменная $EXITCODE будет так же обновляться.

Вообще правильным будет так:
if [ ! -d $PKGBUILDSPATH/$2 ] 
then
echo -e "\033[1;36m===>\033[1;31mPKGBUILD for $2 not found!\033[0m"
exit 200
fi
cd $PKGBUILDSPATH/$2
И не надо насиловать систему переходом в несуществующий каталог ;)
PoZiTPoH
И еще тупой вопрос =\ Перекурил больше половины ABSG, однако:
Скрипт игнорирует EXITCODE. В начале скрипта имеем:
EXITCODE=$?

И что ты этим хотел сказать? В начале скрипта присвоил переменной значение кода возврата предыдущей команды, которой, судя по всему не было. Или ты надеялся таким образом сделать переменную EXITCODE синонимом $? :-D

command1
r=$?
if [ $r -eq 0 ]; then
    echo "All ok"
else
   echo "All BAD"
fi
command2
if [ $? -eq 0 ]; then
  echo "All ok again"
else
  echo "All BAD again"
fi

А теперь скажи, что тут выведется, если директории нет:
cd /sfdfagggfgsdgfds
if [ $? -eq 0 ]; then
  echo OK
else
  echo "BAD"
  echo "Exit status: $?"
fi
;-)
с подковыркой вопрос.
systemd должен умереть.
 
Зарегистрироваться или войдите чтобы оставить сообщение.