Мне интересно, знает ли кто-нибудь способ условного выполнения программы в зависимости от успешного завершения / сбоя предыдущей программы. Могу ли я выполнить программу 2 сразу после программы 1, если программа 1 успешно завершает работу без тестирования переменной LASTEXITCODE? Я пробовал операторы -band и -and безрезультатно, хотя у меня было ощущение, что они все равно не будут работать, и лучшая замена - это сочетание точки с запятой и оператора if. Я имею в виду, что когда речь идет о сборке пакета несколько автоматически из исходного кода в Linux, оператор && не может быть побежден:
# Configure a package, compile it and install it
./configure && make && sudo make install
PowerShell потребовал бы от меня выполнения следующих действий, при условии, что я мог бы фактически использовать ту же систему сборки в PowerShell:
# Configure a package, compile it and install it
.\configure ; if ($LASTEXITCODE -eq 0) { make ; if ($LASTEXITCODE -eq 0) { sudo make install } }
Конечно, я мог бы использовать несколько строк, сохранить их в файле и выполнить скрипт, но идея в том, чтобы он был кратким (сохраняйте нажатия клавиш). Возможно, это просто разница между PowerShell и Bash (и даже встроенной командной строкой Windows, которая поддерживает оператор &&), к которой мне нужно будет приспособиться, но если есть более чистый способ сделать это, я бы хотел знать.