Bash для распечатывания сделать результата

Да, можно просто использовать echo -e

echo -e "lcd /home\ncd /myhome\nget file" | sftp user@host
3
30.11.2013, 19:35
1 ответ

Эксперимент - замена 'делает' с 'истинным' и 'ложным' (это команды, которые не делают ничего кроме возвратить подразумеваемое состояние), и попытайтесь понять, почему Вы получаете результаты, которые Вы делаете.

править: Вот вид эксперимента, который я имею в виду:

for cmd in true false ; do
    printf "\n%s\n" $cmd
    $cmd && echo "1 Success"    || echo "1 Fail"
    $cmd || echo "2 Fail"       && echo "2 Success"
    $cmd || echo "3 Success"    && echo "3 Fail"
done

но для делают, необходимо узнать то, что возвращает значения версию, делают, Вы использовать возвраты - вот выборка от того, что я выполняю:

СТАТУС ВЫХОДА
GNU делает выходы с состоянием нуля, если все make-файлы были успешно проанализированы и никакие цели, которые были созданы отказавшие.
Состояние каждый будет возвращен, если флаг-q использовался, и сделайте, решает, что цель должна быть восстановлена.
Состояние два будет возвращено, если с какими-либо ошибками встретились.

и сценарий с подобным намерением, которое обрабатывает те возвращаемые значения:

for cmd in true false ; do
# make;
$cmd
status=$?;
case "$status" in
    0) echo 'all makefiles parsed, no builds failed'; ;;
    1) echo 'target needs to be rebuilt'; ;;
    2) echo 'error(s) in make'; ;;
    *) echo "make returned unknown status: $status"; ;;
esac;
done
return $status
5
27.01.2020, 21:16

Теги

Похожие вопросы