Эквивалент Powershell `Out-File` для Bash

echo "C:\tools\somepath\toabinary\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append

Как я могу добиться результатов, которые дает эта команда Powershell, используя Bash? К сожалению, я почти ничего не могу найти в сети.

Это предназначено для использования в действии Github.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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 в отношении данных, проходящих через конвейеры (|) / перенаправляемых с помощью > и >>:

  • В POSIX-совместимых оболочках эти операторы служат проводниками необработанных байтов, а данные могут представлять или не представлять текст.
  • В PowerShell они являются проводниками для объектов .NET, что в случае внешних программ неизменно означает интерпретацию строк текста, начиная с PowerShell 7.3.2 — см. этот ответ для получения справочной информации.

Другие вопросы по теме