Portál AbcLinuxu, 21. května 2022 10:56



Dotaz: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?

30.12.2021 12:49 dav12
je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Přečteno: 941×
Odpovědět | Admin
Přílohy:
Pro bash verze 5.1.8 Prosím otestujte jestli bash script "dbgtest.sh" načte soubor "GF_BFLIST.txt" do proměnné s chybou v posledním znaku "á".

LANG=cs_CZ.UTF-8

"grep" by neměl vypsat poslední řádku ( mezi "var" a "var").

Přiložené soubory "dbgtest.sh", "GF_BFLIST.txt".

Děkuji.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.12.2021 13:56 debian+ | skóre: 30 | blog: analyzy
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Čo chceš (Tvoj zámer) vypísať z toho súboru GF_BFLIST.txt?
debian.plus@protonmail.com
30.12.2021 14:00 debian+ | skóre: 30 | blog: analyzy
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mimo iného, toto nič nevypíše:
cat GF_BFLIST.txt |grep -x -a -v '.*'
debian.plus@protonmail.com
30.12.2021 14:29 dav12
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Ve scriptu "dbgtest.sh" se ještě provádí načtení do proměnné GF_VAR a tam mne dochází k chybě, že se poslední dlouhé malé "a" ze souboru GF_BFLIST.txt nenačte jako unicode znak, ale jako dva znaky nepatřící do utf8.
30.12.2021 15:20 Zaphod | skóre: 37 | blog: zaphod_blog
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Otestoval som script
Pri nastavenom "export LANG=cs_CZ.utf8" mi vypísal medzi var riadky chybu. Časť locale mi zostala v sk_SK.utf8.
Po pridaní "export LC_ALL=cs_CZ.utf8" mi nevypísalo žiadnu chybu.
Bash mám síce 5.1.12 (manjaro), ale problém je zrejme v nastavení locale.
30.12.2021 15:38 dav12
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Děkuji za potvrzení, pro (gentoo) bash 5.0.18 se mne chyba neprojevuje, bohužel to asi nemusí znamenat že tam chyba není.
30.12.2021 17:00 debian+ | skóre: 30 | blog: analyzy
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kým Tvoje spustenie mi vracia chybu, tak toto mi ide v Tvojom kóde ok:
GF_VAR=`cat GF_BFLIST.txt`
debian.plus@protonmail.com
30.12.2021 18:02 debian+ | skóre: 30 | blog: analyzy
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
$ bash --version
GNU bash, verzia 5.1.12(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2020 Free Software Foundation, Inc.
Licencia GPLv3+: GNU GPL verzie 3 alebo novšia http://gnu.org/licenses/gpl.html

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Z locale je iba LANG.
debian.plus@protonmail.com
30.12.2021 17:58 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
$ /usr/bin/bash --version
GNU bash, version 5.1.8(1)-release (x86_64-slackware-linux-gnu)
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ LANG=cs_CZ.UTF-8 /usr/bin/bash dbgtest.sh 
LANG=cs_CZ.UTF-8
LC_CTYPE="cs_CZ.UTF-8"
LC_NUMERIC="cs_CZ.UTF-8"
LC_TIME="cs_CZ.UTF-8"
LC_COLLATE=C
LC_MONETARY="cs_CZ.UTF-8"
LC_MESSAGES="cs_CZ.UTF-8"
LC_PAPER="cs_CZ.UTF-8"
LC_NAME="cs_CZ.UTF-8"
LC_ADDRESS="cs_CZ.UTF-8"
LC_TELEPHONE="cs_CZ.UTF-8"
LC_MEASUREMENT="cs_CZ.UTF-8"
LC_IDENTIFICATION="cs_CZ.UTF-8"
LC_ALL=
var
var
$ LC_ALL=cs_CZ.UTF-8 /usr/bin/bash dbgtest.sh 
LANG=en_US.UTF-8
LC_CTYPE="cs_CZ.UTF-8"
LC_NUMERIC="cs_CZ.UTF-8"
LC_TIME="cs_CZ.UTF-8"
LC_COLLATE="cs_CZ.UTF-8"
LC_MONETARY="cs_CZ.UTF-8"
LC_MESSAGES="cs_CZ.UTF-8"
LC_PAPER="cs_CZ.UTF-8"
LC_NAME="cs_CZ.UTF-8"
LC_ADDRESS="cs_CZ.UTF-8"
LC_TELEPHONE="cs_CZ.UTF-8"
LC_MEASUREMENT="cs_CZ.UTF-8"
LC_IDENTIFICATION="cs_CZ.UTF-8"
LC_ALL=cs_CZ.UTF-8
var
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxíxxxxô�
var
Vyzerá to ako keby rozdiel robila LC_COLLATE. Tú mi nastavuje /etc/profile.d/lang.sh na "C".

Mám iný stroj kde je:
GNU bash, version 5.0.17(1)-release (x86_64-slackware-linux-gnu)
A tam problém nenastáva.
3.1. 18:45 dav12
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Příloha:
(Já bych tipoval že za rozdíl může nastavené LC_ALL="cs_CZ.UTF-8")

Provedl jsem po roce upgrade gentoo a chyba se mně přestala v tomto konkrétním místě (v souboru GF_BFLIST.txt - poslední znak) projevovat.

Přidávám lehce upravený nový dbgtest2.sh - kde se chyba zas projevuje a právě při nastavení LC_ALL třeba na "C.utf8" - změna v dbgtest2.sh je kosmetická v zakomentování pár řádků, ale asi se to někde v BASHi posune.
3.1. 23:38 debian+ | skóre: 30 | blog: analyzy
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Tak pri tom locale, v distro bash problem a vo vlastnom prelozenom bash-5.1.8 ziaden problem.
debian.plus@protonmail.com
30.12.2021 21:06 debian+ | skóre: 30 | blog: analyzy
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Preložil som zo zdrojákov nasledovné verzie BASH s defaulnou konfiguráciou v tom istom systéme (čo blbol distro-bash) a žiaden problém. Premenne prostredia rovnaké (nastavene je iba LANG=sk_SK.UTF-8 a žiadne LC_*) a žiaden problém. Všetko funguje ako ma.

Verzie bash: bash-2.01.1, bash-2.02, bash-2.02.1, bash-2.03, bash-2.04, bash-2.05b, bash-2.05, bash-3.0, bash-3.0.16, bash-3.1, bash-3.2, bash-3.2.48, bash-3.2.57, bash-4.0, bash-4.1, bash-4.2, bash-4.2.53, bash-4.3, bash-4.3.30, bash-4.4-beta, bash-4.4-beta2, bash-4.4-rc1, bash-4.4-rc2, bash-4.4, bash-4.4.12, bash-4.4.18, bash-5.0-alpha, bash-5.0-beta, bash-5.0-beta2, bash-5.0-rc1, bash-5.0, bash-5.1-alpha, bash-5.1-beta, bash-5.1-rc1, bash-5.1-rc2, bash-5.1-rc3, bash-5.1 a bash-5.1.8.
debian.plus@protonmail.com
3.1. 19:06 dav12
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Jde o konkrétní případ posloupnosti znaku obou souborů "dbgtest2.sh" a "GF_BFLIST.txt" chyba se přestane projevovat například při změně komentáře v "dbgtest2.sh" nebo při přidání jednoho znaku na začátek posledního řádku do "GF_BFLIST.txt". A ano - verze 5.0.18 mně například také funguje v pořádku.
11.1. 14:29 dav12
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přílohy:
Bash 5.1.8 konfigurovaný následovně: ./configure --without-bash-malloc , obsahuje chybu, špatného zpracování multibajtového znaku (při načítaní pomocí var=$(prikaz)) na mezi 512 bajtového úseku.

Ověřit lze pomocí přiložených souborů "test_inc.sh" "dbgtest5.sh" "GF_BFLIST2.txt", voláním ./test_inc.sh testovany/bash

Chyba není závislá na "locale".
11.1. 15:12 debian+ | skóre: 30 | blog: analyzy
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Ok, nahlasim bug.

U mna to dokonca raz ide, raz nejde.
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx�
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx�
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx�
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx�
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx�
var
$ ./bash-5.1/bash ./dbgtest5.sh 
()var
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxè�
var
$
debian.plus@protonmail.com
11.1. 16:48 debian+ | skóre: 30 | blog: analyzy
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Tak v Debiane je chyba s tym parametrom iba s GNU C library.
debian.plus@protonmail.com
5.4. 16:14 debian+ | skóre: 30 | blog: analyzy
Rozbalit Rozbalit vše Re: je váš GNU bash, verze 5.1.8 také rozbitý pro UTF8 ?
Ahoj.

Nenahlásil som to, ale teraz keď som sa opäť k tomu dostal, tak pre libc6 2.33-7 a bash-5.2-alpha je to ok.
debian.plus@protonmail.com

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.