Мне интересно, знает ли кто-нибудь о способе условного выполнения программы в зависимости от успеха выхода/отказа предыдущей программы. Есть ли способ для меня выполнить программу2 сразу после program1, если программа1 успешно завершена без тестирования переменной LASTEXITCODE? Я пробовал работать с операторами -band и -s без каких-либо изменений, хотя у меня было ощущение, что они не будут работать в любом случае, и лучший заменитель - это комбинация точки с запятой и оператора 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 } }
Конечно, я мог бы использовать несколько строк, сохранить их в файле и выполнить script, но идея состоит в том, чтобы он был кратким (сохраняйте нажатия клавиш). Возможно, это просто разница между PowerShell и Bash (и даже встроенной командной строкой Windows, которая поддерживает оператор & &), мне нужно будет приспособиться, но если есть более чистый способ сделать это, d любить знать.