Использование команды diff для сравнения двух строк?

How I am supposed to use systemd-ask-password-console.service?

Короче говоря, это не так.

systemd-ask-password-console.service(8)запускается автоматически через соответствующий блок .path, когда кто-то делает запрос -пароля. Агенты запроса пароля -предназначены для одновременного запуска, и агент, который первым достигает пользователя, «выигрывает».

I would expect that the running agent processes the request and that it will use some terminal (e.g. tty1) to ask for the password.

Это верно. Однако он не будет запрашивать ввод на «любом» терминале, что практически невозможно в текущем Linux по причинам, указанным @sourcejedi в его ответе .

Дополнительная литература

0
27.04.2020, 12:16
2 ответа

Да, вы можете использовать diffдля двух строк, если вы создаете из них файлы, потому что diffбудет сравнивать только файлы.

Быстрый способ сделать это — использовать подстановки процессов в оболочке, которая их поддерживает.:

diff <( printf '%s\n' "$string1" ) <( printf '%s\n' "$string2" )

Пример:

$ diff <( printf '%s\n' "hey" ) <( printf '%s\n' "hi" )
1c1
< hey
---
> hi

В других оболочках,

printf '%s\n' "$string1" >tmpfile
printf '%s\n' "$string2" | diff tmpfile -
rm -f tmpfile

Во втором примере один файл содержит первую строку, а вторая строка передается в diffпри стандартном вводе. diffвызывается с файлом, содержащим первую строку в качестве первого аргумента. В качестве второго аргумента -сигнализирует о том, что он должен прочитать стандартный ввод (, на который будет поступать вторая строка через printf).

7
19.03.2021, 02:25

Для тех, кто хочет использовать строки вместо файлов, вводимых для команды 'diff' в редакторе скриптов (AppleScript ), после некоторых усилий я обнаружил, что следующее работает:

do shell script "bash -c 'diff -y <(echo '\\''" & string1 & "'\\'') <(echo '\\''" & string2 & "'\\'')'

Обратите внимание на необходимость представления кода в виде строки, которая будет выполняться в оболочке bash, а также на специальные escape-токены.

0
30.05.2021, 01:24

Теги

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