Порядок виконання інструкцій у скриптовій оболонці


1

Ось частина мого сценарію test.sh:

#!/bin/bash

tar -cf $name.tar $name && pbzip2 $name.tar
echo "[$1: Waiting..]

Будь ласка, у мене є питання. Виконання другої інструкції "echo" відбувається відразу після створення файлу .tar.bz2? як я бачу ні. Я бачу, що у мене є тільки каталог смоли і інструкція луна запущений!

Будь-яке пояснення, будь ласка? Дуже дякую.


Якщо ви намагаєтеся сказати, що echo виконується, але результат не відображається pbzip2, потім або перший tar не повертається 0 (і потім pbzip2 не виконується взагалі) або pbzip2 команда неправильна або вона стискає файл "на місці" (таким чином перезаписуючи оригінал .tar файлу, а не створення нового файлу з .bz2 розширення).
Arjan

echo виконується, але ви не бачите результату pbzip2 Це все, я повинен відправити цей файл pbzip2 до вузла призначення, але він відправлений пошкоджений
user1568840

Відповіді:


1

The echo команда не виконується до тих пір, поки. \ t попередня команда пакування і стиснення не виконується .

Значення, немає виходу, поки файл не упакований і стиснутий. Якщо ви хочете, щоб якийсь вивід відображався, коли він починається, і коли це буде зроблено, використовуйте:

#!/bin/bash

echo "[$1: Packing]"
tar -cf $name.tar $name && pbzip2 $name.tar
echo "[$1: Done]"

"Ехо виконується, але ви не бачите результату pbzip2" Це все, я повинен відправити цей файл pbzip2 до вузла призначення, але він відправлений пошкоджений
user1568840
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.