Неожиданное поведение grep при использовании подстановки команд

Нет. По крайней мере, насколько мне известно.

-f - это расширение POSIX export.

POSIX setbash set в режиме POSIX) также исключает определения функций.

1
06.05.2019, 11:00
2 ответа

steeldriver опубликовал ответ в качестве комментария, поэтому я публикую его как ответ. echo "FLAG" | base64 выходы RkxBRwo=, поэтому ваша команда

grep -nr `echo "FLAG" | base64`
делает
grep -nr RkxBRwo=
Но, судя по тому, что вы показали, ваш файл test.txtне содержит RkxBRwo=; он содержит RkxBR(, за которым следуют другие символы ).

Если вы хотите найти свои файлы для первых 5 символов кодировки base64 FLAG, делать

grep -nr `echo "FLAG" | base64 | cut -c1-5`
1
27.01.2020, 23:41

Команда

grep -nr `echo "FLAG" | base64`

указывает на рекурсивный поиск во всех файлах в текущем каталоге шаблона, возвращаемого командой echo "FLAG" | base64.

Вместо этого, я думаю, вы хотите

echo "FLAG" | base64 | grep -n 'Rkx'

или, если по какой-либо причине вам нужна подстановка команды:

grep -n 'Rkx' <<< $(echo "FLAG" | base64)

Обратите внимание, что выражение $()используется вместо обратных кавычек для подстановки команд. Вот почему.

0
27.01.2020, 23:41

Теги

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