Как мне различать выходные данные этих двух команд? [дубликат]

Если вы это сделаете:

ldapsearch -h ... "'(&(this)(that="${Field1}"))'"

Одинарные кавычки будут частью заключенной в кавычки строки и попадут в ldapsearch. Который их не ожидает, выдавая ошибку. Кроме того, расширение ${Field1} не заключено в кавычки, так как вторая двойная кавычка завершает заключение в кавычки. (Кавычки не вложены друг в друга.)

Другой ваш вывод похож на вывод xtrace Bash. Он пытается сказать вам, что аргумент на самом деле содержит буквальную цитату, но цитату довольно трудно прочитать.

В этом:

''\''(&(|(ObjectClass=Group1)(ObjectClass=Group2))(Field1Attribute=FIELD1OUTPUT))'\'''

у нас есть

''           -- an empty string
\'           -- a literal backslash
'(&(|(...))' -- a quoted string
\'           -- another literal backslash
''           -- another empty string

Я подозреваю, что вы хотите либо

ldapsearch -h ... "(&(this)(that=\"${Field1}\"))"

с двойными кавычками в строке, идущей к ldapsearch, либо

ldapsearch -h ... "(&(this)(that=${Field1}))"

без них.

Во всяком случае, без окружающих одинарных кавычек. Я не совсем уверен, должны ли быть там двойные кавычки, я не могу вспомнить, какой формат принимают правила ldapsearch.

Насколько я могу проверить на практике, это прекрасно работает на одной машине:

$ user=itvirta
$ ldapsearch -xLLL "(&(objectClass=shadowAccount)(uid=$user))" 
$ ldapsearch -xLLL '(&(objectClass=shadowAccount)(uid=itvirta))' 
0
23.11.2018, 23:20
2 ответа

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

diff <(cat squid.conf.old | decomment) <(cat squid.conf.new | decomment)
1
28.01.2020, 02:23

Вы можете использовать замену процесса для этого:

diff <(decomment < squid.conf.old) <(decomment < squid.conf.new)
2
28.01.2020, 02:23

Теги

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