LINUX.ORG.RU
Ответ на: комментарий от SNeon

УМВР. Может от шелла зависит... Только что пробовал на баше

$ echo \$ && echo \$ | sed -e 's/\$/\\\$/'
$
\$
staseg ★★★★★
()
Ответ на: комментарий от SNeon

не меняет (

4.2

$ echo 'a$s$d$f' |sed 's/\$/\\$/g'
a\$s\$d\$f

anonymous
()

PASS=`grep -e ${USER} /etc/shadow | awk -F \: '{print $2}' | sed 's/\$/asd/g'` echo $PASS

вывод: $1$EToR0nuD$ErWsfYES0X6xpbuWChfSs.asd

SNeon
() автор топика

fox@morgenstern:~$ echo 'NEED MOAR $' | sed 's/\$/\\\$/'
NEED MOAR \$

Cancellor ★★★★☆
()
Ответ на: комментарий от SNeon
root@hp:~# PASS=`grep -e ${USER} /etc/shadow | awk -F \: '{print $2}' | sed 's/\$/asd/g'`; echo $PASS
!asd
root@hp:~# 
aol ★★★★★
()
Последнее исправление: aol (всего исправлений: 1)

echo $1$EToR0nuD$ErWsfYES0X6xpbuWChfSs.asd | sed 's/\$/\\$/g' выводит \$1\$EToR0nuD\$ErWsfYES0X6xpbuWChfSs.asd - как надо

PASS='$1$EToR0nuD$ErWsfYES0X6xpbuWChfSs.asd' echo ${PASS} | sed 's/\\$/\\$/' выводит $1$EToR0nuD$ErWsfYES0X6xpbuWChfSs.asd

от чего так?

SNeon
() автор топика
Ответ на: комментарий от SNeon

sed 's/\$/asd/g'` echo $PASS
вывод: $1$EToR0nuD$ErWsfYES0X6xpbuWChfSs.asd

враньё. такой ответ был бы при двойных кавычках или при их отсутствии.

sdio ★★★★★
()
Ответ на: комментарий от SNeon

я наконец определился. дело с бэктиксами. потому, что так

 grep -e aol /etc/shadow | cut -d: -f2 | sed -e 's/\$/*/g' 
работает ну, с авком тоже будет.

aol ★★★★★
()
Ответ на: комментарий от sdio

при отсутствии выводит .asd (((( зачем мне врать? тут вопрос бы решить

SNeon
() автор топика
Ответ на: комментарий от SNeon

echo $1$EToR0nuD$ErWsfYES0X6xpbuWChfSs.asd | sed 's/\$/\\$/g' выводит \$1\$EToR0nuD\$ErWsfYES0X6xpbuWChfSs.asd - как надо

опять враньё, строка в echo без кавычек

sdio ★★★★★
()

вот загадка! скрипт:

#!/bin/sh

grep -e ^lda: /etc/shadow | cut -d: -f2 | sed -e 's/\$/*/g'

PASS=`grep -e ^lda: /etc/shadow | cut -d: -f2 | sed -e 's/\$/*/g'`
echo $PASS

выводит

*1*oxDODz2y*2/YFR2zP63fDTrHItlQaj0
$1$oxDODz2y$2/YFR2zP63fDTrHItlQaj0*

SNeon
() автор топика
Ответ на: комментарий от aol

да уж, автору стоит пересмотреть алгоритм решения задачи. возможно все значительно проще, чем загонять такую строку в переменную, потом явно её использовать в каком-нибудь регекспе (grep,sed,...), наверное можно сделать все проще.

sdio ★★★★★
()
Ответ на: комментарий от SNeon

ну, куку же! я тебе сказал уже про бэктиксы, а сдио предложил рабочий вариант!

aol ★★★★★
()
Ответ на: комментарий от SNeon

grep -e ^lda: /etc/shadow | cut -d: -f2 | sed -e 's/\$/*/g'

PASS=«$(awk -F: -v user=lda '($1==user){gsub(/\$/,»\\$",$2);print$2}' /etc/shadow)"
echo «$PASS»

Не забывайте двойные кавычки, когда используете переменные. Внутри двойных кавычек спецсимволы внутри переменных не раскрываются, а вне - раскрываются.

AITap ★★★★★
()
Ответ на: комментарий от anonymous

ну, конечно! а так же любитель заколачивать микроскопом.
что я еще могу тебе ответить.

aol ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.