[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