Показать полную графическую версию : [решено] Откинуть значение после знака равно
blackeangel
28-08-2016, 10:38
Всем привет. Пишу функцию, но что то встрял в одном месте:
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
29-08-2016, 13:16
в чём конечный смысл этих телодвижений?
blackeangel
29-08-2016, 13:21
MakaBooka, заменить или дописать значение в файл
MakaBooka
29-08-2016, 14:01
ну и в целом....
в скриптах желательно ИМХО избегать ветвлений и обработку вести кратко
# если файл не существует - выходим с ошибкой 3
[-f "$bp"] || exit 3
# существует, отлично, продолжаем работу
конструкций
par=$($8)
ИМХО надо избегать без необходимости
во-первых, потому что есть более универсальная конструкция
. /path/program.conf
подлючили файл, конструкции типа "parameter666=value777" отработали, можно проверять наличие переменной parameter666, её значение.
По поводу sed-а.... проверки можно подсвернуть, обработав в таком виде:
- если параметр установлен, его удалить
- в конец добавить строку с параметром.
sed -i '/$par=/d; $ a \$par=$8' $bp
blackeangel
29-08-2016, 14:09
MakaBooka, что не понятного в слове заменить? Не удалить и добавить, а ЗАМЕНИТЬ!
Имхо, код должен быть читабельным и через год и через 2, при условии что в это вникается разово и все забудется.
MakaBooka
29-08-2016, 14:16
что не понятного в слове заменить? Не удалить и добавить, а ЗАМЕНИТЬ! »
если параметры в конфиге позиционно независимы, это равнозначно
Имхо, код должен быть читабельным и через год и через 2 »
верно. поэтому одна функция с тремя ветвлениями раскатанная на 12 строк хуже, чем 4 строки с ветвлением в одной строке.
blackeangel
30-08-2016, 05:45
MakaBooka, еще раз повторюсь заменить, значит заменить. И если говорят что заменить значит так и нужно. Не надо менять условия задачи.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.