Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » [решено] Откинуть значение после знака равно

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

Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


Всем привет. Пишу функцию, но что то встрял в одном месте:
Код: Выделить весь код
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 есть такую подмену?

Отправлено: 10:38, 28-08-2016

 

Аватара для MakaBooka

Старожил


Сообщения: 341
Благодарности: 45

Профиль | Отправить PM | Цитировать


в чём конечный смысл этих телодвижений?

Отправлено: 13:16, 29-08-2016 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


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

Отправлено: 13:21, 29-08-2016 | #3


Аватара для MakaBooka

Старожил


Сообщения: 341
Благодарности: 45

Профиль | Отправить PM | Цитировать


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

Код: Выделить весь код
# если файл не существует - выходим с ошибкой 3
[-f "$bp"]  || exit 3
# существует, отлично, продолжаем работу
конструкций
Код: Выделить весь код
par=$($8)
ИМХО надо избегать без необходимости

во-первых, потому что есть более универсальная конструкция
Код: Выделить весь код
. /path/program.conf
подлючили файл, конструкции типа "parameter666=value777" отработали, можно проверять наличие переменной parameter666, её значение.

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

Код: Выделить весь код
sed -i '/$par=/d; $ a \$par=$8' $bp

Отправлено: 14:01, 29-08-2016 | #4


Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


MakaBooka, что не понятного в слове заменить? Не удалить и добавить, а ЗАМЕНИТЬ!
Имхо, код должен быть читабельным и через год и через 2, при условии что в это вникается разово и все забудется.

Отправлено: 14:09, 29-08-2016 | #5


Аватара для MakaBooka

Старожил


Сообщения: 341
Благодарности: 45

Профиль | Отправить PM | Цитировать


Цитата blackeangel:
что не понятного в слове заменить? Не удалить и добавить, а ЗАМЕНИТЬ! »
если параметры в конфиге позиционно независимы, это равнозначно

Цитата blackeangel:
Имхо, код должен быть читабельным и через год и через 2 »
верно. поэтому одна функция с тремя ветвлениями раскатанная на 12 строк хуже, чем 4 строки с ветвлением в одной строке.

Отправлено: 14:16, 29-08-2016 | #6


Аватара для blackeangel

Старожил


Сообщения: 329
Благодарности: 3

Профиль | Отправить PM | Цитировать


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

Отправлено: 05:45, 30-08-2016 | #7



Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » [решено] Откинуть значение после знака равно

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как получить значение параметра из реестра, добавить значение в текстовый файл etc.? Dark Ange1 Скриптовые языки администрирования Windows 28 22-06-2022 14:37
CMD/BAT - [решено] Не выгружается значение после пробела 8ash8 Скриптовые языки администрирования Windows 2 25-02-2016 18:19
Установка - После удаления всех разделов все равно пишет Обычная загрузка Envy Microsoft Windows 7 0 20-09-2014 19:09
Загрузка - XP SP3. Значение «громкость» сбрасывается в среднее значение при перезагрузке. mitkadritka Microsoft Windows 2000/XP 9 24-02-2012 20:37
Route/Bridge - После удачной настройки сети, инет всё равно не работает DorianLeroy Сетевые технологии 5 29-01-2010 19:46




 
Переход