«bash: команда не найдена», используя l oop для выполнения арифметической операции c в bash - PullRequest
1 голос
/ 24 марта 2020

Я пытаюсь прочитать каждую строку файла «certtemp1.txt», используя l oop in bash. Файл "certtemp1.txt" содержит некоторые числа, например, такие как ниже.

5000
6000
7000

Я пытаюсь вычесть каждое число в файле один за другим из 8000, чтобы получить вывод. Ниже мой сценарий и ошибка.

$currentEpochTime=8000

while read i; do $(( i -  currentEpochTime )): done < certtemp1.txt

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

bash: 3000: command not found
bash: 2000: command not found
bash: 1000: command not found

Я пытался просмотреть много статей, но не разрешить мою ошибку в выводе

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

Поставьте "echo" перед вашим $ ((...)). Ваш синтаксис выполняет арифметику c и затем пытается выполнить ее.

#!/bin/bash

currentEpochTime=8000

while read i
do
    echo $(( i -  currentEpochTime ))
done < certtemp1.txt

Результат:

-3000    
-2000    
-1000
0 голосов
/ 24 марта 2020

Ну, вам просто нужно напечатать эти числа.

В настоящее время происходит то, что ваш скрипт go просматривает весь файл и вычитает 8000 из числа в каждой строке. Но это не печатает результат. Вместо этого он выполняет результат.

Все, что вам нужно сделать, это добавить echo.

while read i; do echo $(( i -  currentEpochTime )); done < certtemp1.txt

Должен сделать работу.

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