Как изменить '55', который читается из файла, на целое число - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь прочитать число из текстового файла и увеличить его на 8, ЕСЛИ число + 8 не превышает 100:

num='head -c 4 storage.txt' // num = '55'

Как мне сделать эквивланта Atoi, читая символ изфайл, преобразованный в int.затем выполните следующее:

if(num+8 >= 100)
   return
else num+=8

, затем прочитайте обратно в файл

num>storage.txt

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

В большинстве (если не во всех) оболочках Unis все переменные хранят строки.Концепция преобразования в целое число не существует.

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

В bash то, что вы намереваетесь сделать, можно записать так:

if [ $(($num + 8)) -lt 100 ]
then
  num=$((num+8))
fi
0 голосов
/ 04 марта 2019

Есть много способов сделать это.Это один из подходов, который использует арифметическое расширение (https://www.gnu.org/software/bash/manual/html_node/Arithmetic-Expansion.html).

if [ $(( num + 8 )) -lt 100 ]; then
    num=$(( num + 8 ))
fi

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