Как подход, который работает с рыбой так же эффективно, как и с оболочками семейства POSIX:
echo ON | sudo tee /proc/acpi/nvhda
Нет смысла sudo echo
- echo
просто записывать в уже открытый дескриптор stdout, унаследованный от его родительского процесса; он не открывает никаких файлов, поэтому ему не нужно никаких разрешений.
Точка на tee
имеет процесс внешний от оболочки , который, таким образом, может находиться на другом конце sudo
. Это работает независимо от того, используете ли вы поддержку heredoc или herestring.