Добавить специальное значение в переменную - PullRequest
0 голосов
/ 13 июня 2018

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

x    55;
y    106;

теперь я хочу изменить значение x с 55 на 60.

В общем, как мы можем применить математическое выражение кзначения переменных в скрипте?

1 Ответ

0 голосов
/ 13 июня 2018

Другие могут придумать что-нибудь попроще (например: sed, awk, ...), но этот быстрый и грязный скрипт работает.Предполагается, что ваш входной файл точно такой же, как вы отправили:

this is my script.
x    55;
y    106;

И код:

#!/bin/bash
#
if [ $# -ne 1 ]
then
    echo "ERROR: usage $0 <file>"
    exit 1
else
    inputfile=$1
    if [ ! -f $inputfile ]
    then
        echo "ERROR: could not find $inputfile"
        exit 1
    fi
fi

tempfile="/tmp/tempfile.$$"
>$tempfile

while read line
do
    firstelement=$(echo $line | awk '{print $1}')
    if [ "$firstelement" == 'x' ]
    then
        secondelement=$(echo $line | awk '{print $2}' | cut -d';' -f1)
        (( secondelement = secondelement + 5 ))
        echo "$firstelement    $secondelement;" >>$tempfile
    else
        echo "$line" >>$tempfile
    fi
done <$inputfile

mv $tempfile $inputfile

Таким образом, он читает строку входного файла в каждой строке.Если строка начинается с переменной x, она берет следующее число, набирает +5 и выводит его во временный файл.Если строка не начинается с x, она выводит строку без изменений во временный файл.Наконец, временный файл перезаписывает входной файл.

Скопируйте этот код в файл, сделайте его исполняемым и запустите его с входным файлом в качестве аргумента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...