libstdc++6 останавливает работу apt -get

#!/bin/bash

# Our given dates
dates=(
    20190315
    20180217
    20170914
)

# Loop over the given dates
for thedate in "${dates[@]}"; do
    # Get day of the week as digit (1 is Monday, 7 is Sunday)
    day=$( date -d "$thedate" +%u )
    # The Monday the same week is $(( day - 1 )) days earlier than the given date.
    # The Monday two weeks earlier is 14 days earlier still.

    date -d "$thedate -$(( day - 1 + 14 )) days" +"$thedate --> %Y%m%d"
done

Выход:

20190315 --> 20190225
20180217 --> 20180129
20170914 --> 20170828

Трудность в этом заключается в том, чтобы выяснить, как построить правильную строку --dateили -dдля GNU dateдля вычисления окончательной даты. Я решил вычислить день недели для заданной даты, а затем использовать его для вычисления строки даты, которая смещает заданную дату на количество дней, так что результирующей датой является понедельник двумя неделями ранее.

Фактические строки, которые в конечном итоге используются для аргумента опции -dв приведенном выше скрипте с использованием дат, указанных в скрипте, это

20190315 -18 days
20180217 -19 days
20170914 -17 days

Сжатие сценария в единую команду, которая выполняет вычисления для одной даты в$thedate:

date -d "$thedate -$(date -d "$thedate" +%u) days -13 days" +%Y%m%d

или

date -d "$thedate -$(date -d "$thedate" +"-%u days -13 days")" +%Y%m%d
-1
06.07.2020, 18:18
1 ответ

Вы можете исправить это, вернувшись к соответствующей версии libstdc++6для вашего дистрибутива:

sudo apt install libstdc++6=8.4.0-1ubuntu1~18.04

libstdc++6является системной библиотекой, и ее несколько сложно обновить.

1
18.03.2021, 23:21

Теги

Похожие вопросы