Portál AbcLinuxu, 7. listopadu 2025 18:34
/usr/bin/mujprikaz 21.1.2005 > /muj/vysup Renata Bila > /muj/vysup id:1844 > /muj/vysup 19.1.2005 > /muj/vysup Jarek Nohavice > /muj/vysup id:1824 > /muj/vysup 18.1.2005 > /muj/vysup Ivan Mlady > /muj/vysup id:1843 > /muj/vysup
Řešení dotazu:
#!/bin/sh
RUN=/run/mujprikaz
TMP=`mktemp /tmp/mujprikaz.XXXX`
VYSTUP=/muj/vysup
if [ -e $RUN ]; then
echo "Soubezne pousteni, koncim"
exit 1
fi
touch $RUN
mujprikaz > $TMP
cat $VYSTUP >> $TMP
mv $TMP $VYSTUP
rm $RUN
Předpokládám, že tazatel je inteligentní a podobné věci si dokáže udělat sám. Navíc, jaký přínos má servírovat hotové řešení?
#!/bin/bash LAST=`cat /tmp/last` seq $(($LAST+3)) -1 $(($LAST+1)) sleep 10 echo "$(($LAST+3))" > /tmp/lastPokud nebyl spuštěn, začne od 1, jinak vypisuje přírustky. Sleep 10 je tam kvůli simulaci souběhu, ať to chvíli trvá. Skript, který to řeší je v mém dřívějším přísp ěvku, opisuji pro komplexnost:
#!/bin/sh
RUN=/run/mujprikaz
TMP=`mktemp /tmp/mujprikaz.XXXX`
VYSTUP=/muj/vysup
if [ -e $RUN ]; then
echo "Soubezne pousteni, koncim"
exit 1
fi
touch $RUN
mujprikaz > $TMP
cat $VYSTUP >> $TMP
mv $TMP $VYSTUP
rm $RUN
Pokud se oprostíme od drobností jako /muj/vysup a mujprikaz umístěný v $PATH, tak po třech nezázislých, ale souběžných spuštěních wrapperu pomocí:
while ! wrapper; do sleep 1; donemám ve výstupním souboru toto:
$ cat /tmp/vysup 9 8 7 6 5 4 3 2 1
A co to nechat od nejstaršího po nejnovější ale upravit čtení (aby četl pozpátku)?
$ cat kategorie.txt Cestování Finance Grafika Jazyky
$ tac kategorie.txt Jazyky Grafika Finance Cestování
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.