Предупреждение в виртуальной консоли

Я думаю, это потому, что вы закрываете одинарную кавычку, используемую для команда bash -c параметр.

Итак, вы выполняете: bash с первым аргументом -c , вторым аргументом sed 1s_ , третьим аргументом _o_ <(echo $ 1 ) и так далее. Примерно так:

$ bash -c 'sed 1s_' '_o_ <(echo $1)'

Третий аргумент ( '_ o_ <(echo $ 1)' ) передается в bash , а не в sed .

Чтобы исправить вашу команду, вы должны использовать двойные кавычки для аргумента sed :

$ find . -maxdepth 1 -name "* *" -exec bash -c 'sed "1s_ _o_" <(echo $1)' h {} \;
1
01.03.2017, 00:15
1 ответ

Если вы знаете, какой пользователь вошел в систему на какой виртуальной консоли, вы можете использовать write . Например, предположим, что пользователь dirk вошел в систему на tty2 , вы можете сделать

echo 'You have a message' | write dirk tty2

, и пользователь увидит сообщение (с двумя дополнительными строками). Пользователь виртуальной консоли должен разрешить получение сообщений с mesg y , если вы не отправляете сообщение как root IIRC. Пользователь сразу видит это сообщение, независимо от того, вызывает он команду или нет.

Альтернативой может быть подключение к оболочке пользователя (возможно с использованием подсказок PS ) путем настройки .profile и т. Д. Для активной проверки сообщений в каком-либо файле и т. Д. .

1
27.01.2020, 23:46

Теги

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