» »

Bash

Bash

tx-z ::

Za narest mamo program v bashu, k se obnaša kt tree. Torej pač da sam napišš program tree. Navodilo pa je da ne smeš uporabat nobenih zunanjih ukazev(kot npr. ls,dir,tree,find,...). S kerim pa pol lah sploh zvem keri direktoriji obstajajo?:\
tx-z

Jean-Paul ::

Težka bo.

user4683 ::

Niti ne ;)

for f in * do

done


Od tu naprej pa ogromno domišljije in kreativnosti ;) Moja rešitev že naredi enak izpis kot tree, upam, da je tudi odporna na vse trike, ki jih imajo pripravljene :)

Isotropic ::

mogoce bo pa struktura podana kot argument....?

tx-z ::

Hvala tole je pomagal že kr dost zdej :D

Mi pa ni jasn zakaj tole:
spr=0
echo ${spr}
spr=${spr+3}
echo ${spr}
spr=${spr+3}
echo ${spr}


Izpiše
0
3
3
...Zakaj ne izpiše zadnje 6? Oz. kako narest da jo izpiše 6..
tx-z

tx-z ::

Ahh, found it! :P

spr=0
echo ${spr}
(( spr=spr+3 ))
echo ${spr}
(( spr=spr+3 ))
echo ${spr}
tx-z

BigWhale ::


Od tu naprej pa ogromno domišljije in kreativnosti ;) Moja rešitev že naredi enak izpis kot tree, upam, da je tudi odporna na vse trike, ki jih imajo pripravljene :)


En trik je lahko presledek v imenu datoteke. :)

user4683 ::

Nope, smo s polžem presenečeno ugotovili, da je bash (vsaj verzija 3.2+) odporen na to :P

BigWhale ::

Ne cisto. Tole:

for bla in *
do
cp $bla target_dir
done


Bo delalo narobe, ce imas kako datoteko s presledkom v imenu.

Brane2 ::

Daš ${bla} v dvojne narekovaje in ma da dela
On the journey of life, I chose the psycho path.

BigWhale ::

Ja tisto potem seveda dela. Dela tudi ce uporabis find.

user4683 ::

Ne cisto. Tole:

for bla in *
do
cp $bla target_dir
done


Bo delalo narobe, ce imas kako datoteko s presledkom v imenu.

Ja, to pa pac ni vec problem kode, ki sem jo napisal zgoraj;)

BigWhale ::

Tist itak nic ne nardi. :>

c0dehunter ::

Jaz imam pa sledečo dilemo: rad bi izpisal neko datoteko IN HKRATI preštel št. vrstic ter to na koncu izpisa izpisal.

Trenutno imam takole:
cat bla.txt | tee >(wc -l)  && echo "Datoteka vsebuje $? vrstic."


tee >(wc -l) mi datoteko razveji na dva streama, en gre na terminal, drug v "wc -l".
Rad pa bi da "wc -l" shrani št. vrstic v neko spremenljivko, da jo bom lahko potem takoj v naslednjem ukazu izpisal (sedaj imam tam $?, ampak ni prav).
I do not agree with what you have to say,
but I'll defend to the death your right to say it.

BigWhale ::

awk '{ print $0 }END {print "Stevilo vrstic: " NR }' bla.txt

Zgodovina sprememb…

  • spremenil: BigWhale ()

c0dehunter ::

Hehe.. no ravno to je problem, ukaza awk tukaj naj ne bi uporabil. V mojem prejšnjem postu, tam kjer je "cat bla.txt" pride v bistvu precej daljši ukaz, ki je bistvo te naloge.

Zanima me torej kako "tee >(wc -l)" shraniti v spremenljivko, da jo lahko potem v echo izpišem..
I do not agree with what you have to say,
but I'll defend to the death your right to say it.

BigWhale ::

Hja, mas dve moznosti, obe grdi. :>

Prva, malo popravljena tvoja verzija.

cat lala.txt | tee >(foo=`wc -l`; echo -e "\nStevilo vrstic ${foo}\n")


Druga, z uporabo zacasnjega pipe-a.
mkfifo tmp
cat lala.txt | tee tmp & 
foo=`<tmp wc -l`
echo "Stevilo vrstic: ${foo}"
rm tmp


Pri slednjem primeru moras pazit, da vsakic obvezno pobrises tmp pipe. Ker drugace v njem ostane tisto kar so prej not spravil in ni slo ven. :)

Edit, sem dodal se shranjevanje v spremenljivko. :)

Zgodovina sprememb…

  • spremenil: BigWhale ()

c0dehunter ::

Velik kit, hvala ;)
I do not agree with what you have to say,
but I'll defend to the death your right to say it.

bigbada ::

Rabim napisat regularni izraz za ujemanje imena Libijskega predsednika Moamerja Gadafija, ki vklučuje naslednje izpeljanke imena:
- Muammar al-Kaddafi (BBC)
- Moammar Gadhafi (Assiciated Press)
- Muammar al-Qadhafi (Al-Jazeera)

Sploh nevem kaj hočejo od mene tu? Any help? Zna kdo to ?

keworkian ::

bigbada je izjavil:

Rabim napisat regularni izraz za ujemanje imena Libijskega predsednika Moamerja Gadafija, ki vklučuje naslednje izpeljanke imena:
- Muammar al-Kaddafi (BBC)
- Moammar Gadhafi (Assiciated Press)
- Muammar al-Qadhafi (Al-Jazeera)

Sploh nevem kaj hočejo od mene tu? Any help? Zna kdo to ?


(m(?:u|o)ammar\s?(?:al-)?(?:k|g|q)?\w+)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Bash skripta

Oddelek: Programiranje
243262 (2574) poweroff
»

c# - preverjanje podatkov

Oddelek: Programiranje
5661 (548) gendale
»

php string v int

Oddelek: Programiranje
71297 (1121) lukanium
»

Noob se loti programiranje v BASH

Oddelek: Programiranje
212270 (1670) c3p0
»

[UNIX] arg list too long

Oddelek: Programiranje
331947 (1202) bijonda

Več podobnih tem