echo "C:\tools\somepath\toabinary\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
Как я могу добиться результатов, которые дает эта команда Powershell, используя Bash? К сожалению, я почти ничего не могу найти в сети.
Это предназначено для использования в действии Github.





Bash и POSIX-совместимые оболочки обычно не имеют явной команды для сохранения данных stdout в файл; у них есть операторы перенаправления > и >> (также поддерживаются аналогично в PowerShell), которые соответствуют Out-File и Out-File -Append соответственно:
# Bash equivalent of your command.
echo "C:\tools\somepath\toabinary\bin" >> "$GITHUB_PATH"
Кодировка символов подразумевается настройкой LC_CTYPE, как сообщает locale, и это почти всегда UTF-8 на современных Unix-подобных платформах.
В POSIX-совместимых оболочках, в отличие от PowerShell, ссылки как на переменные оболочки, так и на переменные среды имеют одинаковую нотацию с использованием символа $ перед именем переменной. Следовательно, переменная среды GITHUB_PATH должна упоминаться как $GITHUB_PATH.
Как указывает Tripleee , в отличие от PowerShell, лучше всего заключать переменные в двойные кавычки ("..."), чтобы гарантировать, что их значение используется как есть, без так называемых расширений оболочки , в частности разбиение на слова, когда значения без кавычек со встроенными пробелами становятся несколькими аргументами.
Обратите внимание на фундаментальное различие между POSIX-совместимыми оболочками и PowerShell в отношении данных, проходящих через конвейеры (|) / перенаправляемых с помощью > и >>: