[решено] Откинуть значение после знака равно

Ответить
Аватара пользователя
blackeangel

[решено] Откинуть значение после знака равно

Сообщение blackeangel »

Всем привет. Пишу функцию, но что то встрял в одном месте:



Код:

Код: Выделить всё

setprop(){
bp=/system/build.prop
if [-f "$bp"]; then #проверяем есть ли файл
    par=$($8) #вот тут отсекаем все что после "="
    if grep -q "$par" $bp; then #ищем есть ли в файле левая часть (до "=")
        sed -i '/$par=*/$8/g' $bp #заменяем строку содержащую левую часть на новую
    else
        echo "$8" >> $bp #если нет строки - добавляем
    fi
else
echo "System not installed!" #если файла нет - выходим
exit
fi
}

Как откинуть после равно?

Да и посмотреть профессиональным взглядом не помешало бы. По поводу будет ли sed есть такую подмену?
Аватара пользователя
MakaBooka

Re: [решено] Откинуть значение после знака равно

Сообщение MakaBooka »

в чём конечный смысл этих телодвижений?
Аватара пользователя
blackeangel

Re: [решено] Откинуть значение после знака равно

Сообщение blackeangel »

MakaBooka, заменить или дописать значение в файл
Аватара пользователя
MakaBooka

Re: [решено] Откинуть значение после знака равно

Сообщение MakaBooka »

ну и в целом....

в скриптах желательно ИМХО избегать ветвлений и обработку вести кратко





Код:

Код: Выделить всё

# если файл не существует - выходим с ошибкой 3
[-f "$bp"]  || exit 3
# существует, отлично, продолжаем работу

конструкций



Код:

Код: Выделить всё

par=$($8)

ИМХО надо избегать без необходимости



во-первых, потому что есть более универсальная конструкция



Код:

Код: Выделить всё

. /path/program.conf

подлючили файл, конструкции типа "parameter666=value777" отработали, можно проверять наличие переменной parameter666, её значение.



По поводу sed-а.... проверки можно подсвернуть, обработав в таком виде:

- если параметр установлен, его удалить

- в конец добавить строку с параметром.





Код:

Код: Выделить всё

sed -i '/$par=/d; $ a \$par=$8' $bp
Аватара пользователя
blackeangel

Re: [решено] Откинуть значение после знака равно

Сообщение blackeangel »

MakaBooka, что не понятного в слове заменить? Не удалить и добавить, а ЗАМЕНИТЬ!

Имхо, код должен быть читабельным и через год и через 2, при условии что в это вникается разово и все забудется.
Аватара пользователя
MakaBooka

Re: [решено] Откинуть значение после знака равно

Сообщение MakaBooka »

Цитата blackeangel:



что не понятного в слове заменить? Не удалить и добавить, а ЗАМЕНИТЬ!
[решено] Откинуть значение после знака равно




если параметры в конфиге позиционно независимы, это равнозначно




Цитата blackeangel:



Имхо, код должен быть читабельным и через год и через 2
[решено] Откинуть значение после знака равно




верно. поэтому одна функция с тремя ветвлениями раскатанная на 12 строк хуже, чем 4 строки с ветвлением в одной строке.
Аватара пользователя
blackeangel

Re: [решено] Откинуть значение после знака равно

Сообщение blackeangel »

MakaBooka, еще раз повторюсь заменить, значит заменить. И если говорят что заменить значит так и нужно. Не надо менять условия задачи.
Ответить

Вернуться в «Программирование в *nix»