Portál AbcLinuxu, 8. května 2025 22:32
Ahoj, potreboval bych poradit ohledne jedne veci, kterou potrebuju k vypracovani projektu.
Mam skript napr. skript.sh, ktery je normalne spustitelny, nezpracovava zadne soubory, ale standartni vstup stdin, takze jeho pouziti je takoveto napr.
echo "nejaky text ke zpracovani" | ./skript.sh
a bohuzel nevim pres ktere vhodne nastroje dale v tomto skriptu upravovat standartni vstup. Ve skriptu se nacte standartni vstup, zpracuje a posle potom na standartni vystup. Predem diky za odpovedi nebo za priklad zpracovani tohoto vstupu ve skriptu.
bohuzel nevim pres ktere vhodne nastroje dale v tomto skriptu upravovat standartni vstup
Přes jakékoliv. Jenom je nutné si uvědomit, že první takový program celý standardní vstup sežere a další už ho budou čekat z klávesnice (takže je nejjednodušší ho na začátku cat
nout do pomocného souboru a z něj ho pak číst).
Dobre catnout ho, ja to chapu co mate na mysli, ale nevim jak to provest, co dat do toho skriptu aby to reprezentovalo ten standartni vstup.
Jestli muzete napiste tu syntaxi pro ulozeni toho vstupu pres cat do souboru
Tam nejde o žádnou syntaxi. Potom, co je skript spuštěn, tak shell naváže svůj standardní vstup na jeho a jede se dál.
Mám-li takovýtoskript.sh
,
#!/bin/sh cat >tmptak pokud provedu
echo "ahoj" | ./skript.shtak bude v souboru
tmp
bude text ahoj
.
Pokud ale provedu
./skript.shtak se skript zablokuje a bude očekávat data z klávesnice (a vše, co napíšu - až pod
Ctrl+D
se uloží do tmp
).
Diky, uz jsem to pochopil jak to funguje a ze se da pouzit pro ostatni napr. i:
while read line
do
echo $line
done
Jenon se zeptam mimo. Nevite jak si doinstalovat manualove stranky do ubuntu, protoze potrebuju pracovat s prikazem apropos a pro zadani hodnoty napr.
apropos brk, me nevypise zadne moznosti. Dival jsem se do synapticu a mam naistalovany balicek man-db posledni verze. Diky moc za odpoved
$ cat pocet_slov_1.sh #!/bin/sh wc -w $ echo "read the fucking manual" | ./pocet_slov_1.sh 4
$ cat pocet_slov_2.sh #!/bin/sh read text echo $text | wc -w $ echo "read the fucking manual" | ./pocet_slov_2.sh 4
$ cat pocet_slov_3.sh #!/bin/sh pocet=$( wc -w ) echo "Pocet slov: $pocet" $ echo "read the fucking manual" | ./pocet_slov_3.sh Pocet slov: 4
$ cat pocet_slov_4.sh #!/bin/sh read text pocet=$( echo $text | wc -w ) echo "Zadany text: $text" echo "Pocet slov: $pocet" $ echo "read the fucking manual" | ./pocet_slov_4.sh Zadany text: read the fucking manual Pocet slov: 4
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.