LINUX.ORG.RU
ФорумAdmin

Экранирование символов expect/bash

 , , ,


1

2

По мотивам этого.

Нужно в пароле заэкранировать все специальные символы bash/expect(Tcl) с использованием того же bash или, в крайнем случае, perl.

Как сделать эффективно?

★★★★★

Последнее исправление: Twissel (всего исправлений: 1)

@pascal, ничего не подскажешь?

Twissel ★★★★★
() автор топика
# строка с паролем
bash$ pw=$'password`~!@#$%^&*()-_=+[{]}\\|;:\'",<.>/?'
bash$ echo "$pw"

password`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?

# строка с экранированным для bash паролем
bash$ printf '%q' "$pw"

password\`~\!@#\$%\^\&\*\(\)-_=+\[\{\]\}\\\|\;:\'\"\,\<.\>/\?

# засовываем её в переменную
bash$ printf -v pw_escaped '%q' "$pw"
# проверяем работу экранирования в bash (должно совпасть пунктом 1)
bash$ eval echo $pw_escaped

password`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?
spirit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.