LINUX.ORG.RU

BASH проверить параметр файла.


0

2

Всем здрям, необходимо что бы ~/.Xdefaults содержал определенную запись с параметром 500. Написал скрипт:

#!/bin/bash
FILE=/home/splinter/.Xdefaults
if [ -e $FILE ]; then
        LINE=$(grep -c multiClickTime: $FILE)
        echo $LINE
        if [ $LINE=0 ]; then
        echo "*multiClickTime:500" > $FILE
        echo "Файл заполнен"
        fi 
else echo "*.multiClickTime:500" > $FILE & echo "Файл создан"
fi  
Не могу сообразить как красиво проверить *multiClickTime: имеет параметр 500, а если параметр отличается то изменить его на 500?

★★★★★

Используй cut для разбиения строки и sed для её редактирования.

post-factum ★★★★★ ()

Скрипт говно. Его результатом будет файл из одной строки. Так че там проверять то?

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

Знаю что скрипт говно, потому что опыта у меня в скриптописании нету., поэтому и спршиваю совета. А если там еще куча других параметров? Как корректно найти эту строку и поменять значение?

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

>> Как корректно найти эту строку и поменять значение?

sed -i

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

regexp (sed)

sed 's/multiClickTime:\d*/multiClickTime:500/g' file

if [ $(grep multiClickTime file | wc -l) -eq 0 ]; then echo 'multiClickTime:500' >> file; fi

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

> sed 's/multiClickTime:\d*//g' file

Проще через '//d'. Ну и -i забыл

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

Можно, но grep не делает edit in place. Лишняя операция

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