разрешение файла bash ошибка при добавлении в файл [дубликат]

GNU parallel вызывает команду, указанную вами через оболочку. Иногда это удобно, но часто неудобно, как вы заметили, из-за проблем с цитированием и зависимости от переменной окружения SHELL. (Оле и я уже говорили об этом.)

Вы должны сказать parallel, что то, что вы передаете, является исполняемым файлом с аргументами, а не поведением по умолчанию, которое предполагает, что аргументы команда, выполняемая программой, названной переменной среды SHELL, произвольно разделенной на части, которые соединяются вместе с пробелом между ними. Такой возможности нет; самое близкое, это сказать, что parallel заключает команду в кавычки, чтобы оболочка в конечном итоге выполнила правильную команду.

parallel -a oldfile.txt -k --block $BYTES --pipe-part -q sed 's/\s.*$// ; s/\(.*\)/\L\1/' > newfile.txt
0
12.02.2018, 13:11
2 ответа

Команда не работает, потому что sudo применяется к команде, однако перенаправление выполняется с текущим пользователем, и поэтому он не дает разрешений. Таким образом, echo запускается от имени пользователя root, однако >> / etc / crontab выполняется с разрешениями пользователя вне sudo.

Это будет работать:

sudo /bin/bash -c '( echo " * * * * * root php /var/www/html/php/run.php cron" >> /etc/crontab )'
4
28.01.2020, 02:17

Вы можете использовать:

echo " * * * * * root php /var/www/html/php/run.php cron" | sudo tee -a /etc/crontab
2
28.01.2020, 02:17

Теги

Похожие вопросы