Portál AbcLinuxu, 8. května 2025 07:02
a=$((500/3));echo ${a%?},${a: -1}
.
Tipuju, že v xbmc je jako shell Dash, který tuhle funkci nemá, nebo dokonce jenom busybox shell.
Není to jenom tajné Ubuntu, že by to tam šlo doinstalovat?
Do rozbitých systémů doinstalovávám do chrootu Debian.
Taky by to šlo obejít pomocí a=$((500/3));echo ${a%?},`echo $a | rev | cut -c 1`
Zkoušel jsem to od tebe, ale
vypíše mi to ty příkazy ne výsledek. Je to v apostrofech, neměly by tam být nějaké závorky?Jinak na xbmc nic doinstalovávat nechci (ani nevím jak), tohle potřebuji jen ke svému malému scriptíku.
${a:-1}
bych řekl, že je specifická pro bash (otestovat na puppy to můžeš zavoláním dash).
Možností jak to řešit je několik. Pokud máš štěstí, pak je na xmbc sed a nebo awk a jsi za vodou. Pokud ne, nebude potřeba si hrát s ${a%.}
a printf.
Nevíš jak to přesně napsat, aby to bylo na jedné řádce a oddělené desetinnou čárkou?
a=$((500/3));echo ${a%?} > "/storage/Vypis1.txt"; echo $a > "/storage/Vypis2.txt";cat "/storage/Vypis2.txt" | tail -c 2 > "/storage/Vypis1.txt"
echo $(sed -n "1p" '/storage/Vypis1.txt'),$(sed -n "2p" '/storage/Vypis1.txt')
Nedalo by se trochu zjednodušit aby tam nemusely být ty soubory .txt??
Máte nějaký důvod simulovat aritmetické operace pomocí řetězcových? Jinak by stačilo prostě
a=$[500 / 3] echo "$[a / 10].$[a % 10]"
1) nemám potřebné znalosti
2) ne všechno v xbmc funguje jako třeba v puppy
Ten výraz echo $a | sed -r 's/^(.*)(.)$/\1,\2/' funguje a dostanu výsledek 16,6 v xbmc, u toho posledního příspěvku funguje pouze v puppy, v xbmc dostanu $[a / 10].$[a % 10]
Jestli vám funguje aritmetická expanze s tou $((...))
syntaxí na "500 / 3", měla by fungovat i na to druhé dělení. Přinejhorším by asi mělo projít
echo $(($a / 10)).$(($a % 10))
Bohužel ani tento výraz
echo $(($a / 10)).$(($a % 10))
v xbmc nefunguje, v puppy ano.Snažil jsem se níže uvedený výraz změnit z přesnosti z desetiny na setiny, ale nejsem toho schopen.
echo $a | sed -r 's/^(.*)(.)$/\1,\2/' je přesnost na desetiny
Jestli by to sem někdo mohl napsat, byl bych moc rád.Díky.
Kolik je v kulaté závorce teček, tolik je desetinných míst
a=$((5139125898754/456879));echo $a | sed -r 's/^(.*)(...)$/\1,\2/' tři desetinná místaa=$((5139125898754/456879));echo $a | sed -r 's/^(.*)(....)$/\1,\2/' čtyři desetinná místa
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.