Я пишу сценарий оболочки и хотел бы передать STDOUT в файл в команде su.Выходной файл должен принадлежать другому пользователю, поэтому следует использовать su.Однако я не могу заставить pipe работать с su, когда выводимый текст и имя выходного файла переменные (см. Пример ниже).
Мой обходной путь - это конвейерк файлу без использования su, затем прикрепите этот файл к нужному пользователю.Однако мне было интересно, есть ли «одношаговый» способ сделать это с помощью su?
Пример (только для иллюстрации):
#!/bin/sh
message="Hello World";
file="/tmp/HelloWorld.txt";
su someuser -c 'echo "${message}" > "${file}"';
Если я поставлю ${file}
в двойномкавычки, как в этом примере, я получаю следующую ошибку:
bash: : No such file or directory
Если я удаляю двойные кавычки вокруг ${file}
, я получаю следующую ошибку:
bash: ${file}: ambiguous redirect