Если я правильно читаю исходный код ядра, эта строка:
readlink[85]: unhandled signal 7 code 0x1 at 0x00000020000b8f60 in libc-2.26.so[2000049000+13e000]
Сообщает вам то, что вам нужно знать. libc загружается в шестнадцатеричном формате 0x2000049000
и имеет длину 0x13e000
байт. Адрес, по которому произошел сигнал, — 0x00000020000b8f60
. Чтобы выяснить, где относительно libc возникает ошибка, вычислите0x00000020000b8f60
-0x2000049000
.
Я получаю 0x6ff60
, так что ищите это место в objdump -d libc...
или nm -g libc...
.
Сksh93
:
$ ksh93 -c 'printf "%(%y%m%d)T\n" "first saturday"'
200704
Команды с отступом предназначены только для лучшего понимания.
$ target_day_id=6 # return value of date +%w; Sunday is 0
$ year_month="$(date +%Y-%m)"
$ echo $year_month
2020-07
$ day_id="$(date --date="${year_month}-01" +%w)"
$ echo $day_id
3
$ # July, 1st 2020 was a Wednesday
$ sat1_date="${year_month}-0$(( ( (7+target_day_id-day_id) % 7 ) + 1 ))"
$ echo $sat1_date
2020-07-04
$ # only formatting from now on
$ sat1_date_short="${sat1_date:2}"
$ echo $sat1_date_short
20-07-04
$ sat1_date_short_digits_only="${sat1_date_short//-/}"
$ echo $sat1_date_short_digits_only
200704