Эквивалентно sudo tee filename <<< "строка" в рыбе - PullRequest
0 голосов
/ 08 марта 2019

Прямо сейчас я выполняю следующую команду в bash:

sudo tee /proc/acpi/nvhda <<<ON

Однако я бы хотел использовать эту команду в fish вместо bash. <<< не работает в рыбе и выдает ошибку. Что будет эквивалентом в рыбе? </p>

Я пытался передать эхо, но это заставляет меня отказывать в разрешении.

sudo echo "ON" | /proc/acpi/nvhda

1 Ответ

2 голосов
/ 08 марта 2019

Как подход, который работает с рыбой так же эффективно, как и с оболочками семейства POSIX:

echo ON | sudo tee /proc/acpi/nvhda

Нет смысла sudo echo - echo просто записывать в уже открытый дескриптор stdout, унаследованный от его родительского процесса; он не открывает никаких файлов, поэтому ему не нужно никаких разрешений.

Точка на tee имеет процесс внешний от оболочки , который, таким образом, может находиться на другом конце sudo. Это работает независимо от того, используете ли вы поддержку heredoc или herestring.

...