[Comm] чПРТПУ.
Pavel S. Khmelinsky
=?iso-8859-1?q?hmepas_=CE=C1_yauza=2Eru?=
Ср Июл 9 23:54:28 MSD 2003
Oleg Dolgov wrote:
> Закидайте меня гнилыми помидорами, но...
>
> Как правильно в командной строке задать последовательное выполнение двух
> и более команд?
> Пример:
> хочу создать tar.bz2
> Последовательно набрать нет проблем, а вот как сказать оболочке
> выполнить tar <что-то>, а затем, дождавшись завершения, bzip2 <результат
> предыдущей команды>?
1. tar.bz2 два создается одной командой tar, например так
tar jcf test.tar.bz2 testdir
запаковать диру testdir в test.tar.bz2
или так
tar c testdir | bzip2 -c > test.tar.bz2
или так
tar jc testdir > test.tar.bz2
Это я к тому что две команды тут особо не нужны.
2. Если просто нужно выполнить последовательность команд, то в
bash можно написать их через ; (точка с запятой)
например так
tar cf testdir.tar testdir; bzip2 testdir.tar
в данном случае запуск одной команды не зависит от кода
завершения другой.
3. более правильный способ использовать && (логическое "и" в
bash). Например так
tar cf testdir.tar testdir && bzip2 testdir.tar
В этом случае вторая конструкция выполнится только в случае
успешного завершения первой. Т.е. если диры testdir не существует
то bzip2 выполнен не будет.
Подробная информация о списке рассылки community