Portál AbcLinuxu, 25. května 2025 04:14

Dotaz: Pomoc se scripty

30.6.2020 10:06 Lukas48
Pomoc se scripty
Přečteno: 722×
Odpovědět | Admin
Příloha:
Zdravím, mám prosbu, potřeboval bych poradit nebo nějaký tip s tímto:

1) Script sh -> který vytvoří složku v ní několik souboru s koncovkou .html, tímto scriptem vytvořit sh soubor vložit do něj script, který odebere koncovku (.html) vytvořených souborů?

2)vytvořit script který za určitý čas zkopíruje obsah adresáře do souboru

Prosím o tip jak na to. Předem děkuju.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.6.2020 11:15 PetebLazar | skóre: 34 | blog: l_eonardovo_odhodlani
Rozbalit Rozbalit vše Re: Pomoc se scripty
Odpovědět | | Sbalit | Link | Blokovat | Admin
Musí to být vše řešeno skriptem? Na hromadné přejmenování souborů je možné využít například příkazu rename.
30.6.2020 12:50 Lukas48
Rozbalit Rozbalit vše Re: Pomoc se scripty
Ano, to je možnost. Ale spíše si nevím rady s tím jak z jednoho scriptu můžu nahrát obsah do nově vytvořeného souboru (.sh) a po vytvoření a nahrání scriptu tento script spustit tím původním... Tak nevím jestli je to srozumitelné :)
Gréta avatar 30.6.2020 13:08 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: Pomoc se scripty

nóóó snad ti jako rozumim :D

#!/bin/bash

# vyrobíme třeba heredocem další skript/textovej soubor s názvem lukasuv_skript.sh
# víc tady hele https://en.wikipedia.org/wiki/Here_document#Unix_shells
cat << EOF > ./lukasuv_skript.sh
#!/bin/bash
echo "ahoj!!!!"
EOF

# uděláme novej skriptík pustitelnej
chmod +x ./lukasuv_skript.sh

echo "bude se poustet skript tak pozor"

# a pustíme
./lukasuv_skript.sh

echo "hotovo!!!!!!!!!!!!!!!!!"
30.6.2020 13:13 PetebLazar | skóre: 34 | blog: l_eonardovo_odhodlani
Rozbalit Rozbalit vše Re: Pomoc se scripty
Přesměrovat výstup příkazu find do souboru s nazvem druhého skriptu. Vypíše seznam souborů včetně relativních cest.

find ./adresar_se_soubory -type f > druhy_skript.sh

Soubory (druhy_skript, jednotlive_skripty) patrně vzniknou bez příznaku spustitelnosti, ten jim je nutné pro možnost přímého spuštění pomocí chmod +x nazev_souboru přidat.

Skripty by měly mít správně na prvním řádku uvedeno čím se mají intepretovat, např. #!/bin/bash jinak se budou vykonávat výchozím shellem.

Vytvořený skript může být zavolaný přímo z původního skriptu ve správném místě pomocí ./druhy_skript.sh

Gréta avatar 30.6.2020 18:10 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: Pomoc se scripty
Odpovědět | | Sbalit | Link | Blokovat | Admin

ktý dvojce

#!/bin/bash

# cesta ke složce kterou chceme číst
cesta_ke_slozce=/home/lukas/.tajnáSložka/

# do názvu souboru strčíme současný datum a čas
# víc vo formátování času třeba tady hele https://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/
nazev_souboru=LukášůvSeznam_$(date +'%m-%d-%Y_%T').txt

#noa příkazem ls uděláme výpis vobsahu složky a výstup ls přesměrujem do ještě neexistujícího souboru
# se nám takle vyrobí ;D
ls -l $cesta_ke_slozce > $nazev_souboru

# jestli jako má bejt první řádek *.txt datum tak ale takle!!!!! :O :O
date +'%m-%d-%Y_%T' > $nazev_souboru

#dvouma zobáčkama děláme append souboru jakože připišeme nějakej další vobsah
ls -l $cesta_ke_slozce >> $nazev_souboru

noa pouštět asi cronem. zadáš příkaz

crontab -e

a připišeš tam

*/5 * * * * /cesta/ke/skriptu/skript.sh

aby seto jakoby pouštělo každejch těch pět minut. víc vo nastavování cronu třeba tady hele

Zelená energetická soustava založená na obnovitelnejch zdrojích energie versus realnej svět 🤡🇪🇸
30.6.2020 18:25 PetebLazar | skóre: 34 | blog: l_eonardovo_odhodlani
Rozbalit Rozbalit vše Re: Pomoc se scripty
"Asynchronní" výkon druhého skriptu by se musel dít na základě pozitivního potvrzení připravenosti vstupního souboru(z úvodního skriptu), nebo by tento musel být připraven závěrečnou atomickou operací (vznikal by pod necílovým názvem a teprve v posledním kroku byl přejmenován na cílový název). Druhý skript (z cronu) by po vykonání hromadného příkazu soubor smazal, aby nedocházelo k opakovanému spuštění (se stejnými daty). Pokud by došlo ke spuštění druhého kroku a soubor nebyl připraven počkalo by se další periodu. Samozřejmě prvotní skript by se nesměl znovu vykonat dokud by nebyla hotova cron úloha (tj. stále by existoval soubor s cílovým názvem).
Gréta avatar 1.7.2020 12:12 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: Pomoc se scripty

si myslim žeto sou dva různý co spolu jakože vůůbec nesouvisej :O :O se to asi jako teprve učí tak si hraje si myslim :O ;D

jinak jako nejednoduší řešení by bylo generování seznámku pouštět dycky koncem toho vyráběcího skriptu pokuť se jako nepředpokládá měnění souborů vodněkud jinak třeba uživatelem ;D

1.7.2020 17:43 PetebLazar | skóre: 34 | blog: l_eonardovo_odhodlani
Rozbalit Rozbalit vše Re: Pomoc se scripty
Ve svém druhém příspěvku si myslím je tazatel běhově spojuje. Myslím, že si neuvědomil že to jediné co potřebuje primární skript vědet o sekundárním skriptu v době svého spuštění je cesta k němu a jeho jmeno.sh (samozřejmě předpokládejme, že v době kdy primární skript bude ze sebe volat sekundarni skript buď tento nebude existovat či bude hotov(smysluplný).
k3dAR avatar 1.7.2020 22:32 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: Pomoc se scripty
Odpovědět | | Sbalit | Link | Blokovat | Admin
zkus odtajnit co je tvuj cil, treba se pak lepe najde vhodne(jsi) reseni ;-)
porad nemam telo, ale uz mam hlavu... nobody
5.7.2020 20:08 Bherzet | skóre: 19 | blog: Bherzetův blog
Rozbalit Rozbalit vše Re: Pomoc se scripty
Odpovědět | | Sbalit | Link | Blokovat | Admin
1) Script sh -> který vytvoří složku v ní několik souboru s koncovkou .html, tímto scriptem vytvořit sh soubor vložit do něj script, který odebere koncovku (.html) vytvořených souborů?
#!/bin/bash

nekolik=5
slozka="slozka"
shsoubor="$slozka/shsoubor.sh"

mkdir "$slozka"

for i in $(seq 1 $nekolik); do
    touch "$slozka/$i.html";
done

cat << EOF > "$shsoubor"
#!/bin/bash
rename 's/\.html$//' "$slozka"/*.html
EOF

chmod +x "$shsoubor"
Použití:
$ ./1.sh
$ ls slozka/
1.html  2.html  3.html  4.html  5.html  shsoubor.sh
$ slozka/shsoubor.sh
$ ls slozka/
1  2  3  4  5  shsoubor.sh
2)vytvořit script který za určitý čas zkopíruje obsah adresáře do souboru
#!/bin/bash

urcitycas=5
soubor="soubor"
adresar="slozka"

sleep $urcitycas
ls -1 "$adresar" > "$soubor"
Použití:
$ ./2.sh
$ cat soubor 
1
2
3
4
5
shsoubor.sh
6.7.2020 15:33 Lukas48
Rozbalit Rozbalit vše Re: Pomoc se scripty
Odpovědět | | Sbalit | Link | Blokovat | Admin
Děkuju všem za pomoc a za super navrhy. :)

1)tu jsem se rozhodl udělat jednoduše, vytvořit složku, soubory.....ale spíše mi šlo o spuštění scriptu scripten, což je "./script.sh"

2) jsem udělal tak, že při uplynutí určitého času nejdřív ověří jestli soubor existuje a pokud ano tak do něj na konec uloží výpis adresáře.

Jestli bych mohl, chtěl bych vas poprosit o pomoc s "sed" Chtěl bych vybrat lichy a sudý řádky - to zvládám, ale u lichýho napsat na začátek řádku něco(např. nějaký znak) a u sudýho na konec,taky nějaký znak. Netuším jak na to...:/

Nebo když chci vybrat v souboru kde mám seznam o x-řádcích a chtěl bych vybrat např 5-10, a před ně vlořit nějaký znak? Vím jak vypsat tohle rozmezí řádků, a vím jak vložit na začátek znak ale nevim jak oba příkazy dát dohromady...nebo jde to vůbec? Když to spojím tak mi vyjde:

sed -n '10,20p'; 's/^/#/' f.txt

...ale nefunguje :(
Gréta avatar 7.7.2020 19:44 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: Pomoc se scripty

tamten mezernik se piše přímo dotoho stringu ne mezi dva :O ;D

nóó takže třeba ke každýmu sudýmu jakoby přiděláš nazačátek # příkazem

sed  '1n;s/^/#/;n' vstupniSoubor.txt > vystupniSoubor.txt

tim 1n první řádek přeskočíme s/^/#/ přidáme noa tim 'n' jakože jenom každej druhej

a nakonec každýho lichýho jakoby něco připsat de podobně

sed 's/$/blabla/;n' vstup.txt > vystup.txt

jo a příště jako rači založ novej dotaz. jak jeto jednou vodfajfkovaný tak už nato jako lidi moc nekoukaj :O ;D

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.