Portál AbcLinuxu, 22. července 2025 07:58


Dotaz: sh script a find uvnitr fce()

1.7.2005 11:00 Rozik | skóre: 14
sh script a find uvnitr fce()
Přečteno: 118×
Odpovědět | Admin
Ahoj, mohl by mi nekdo osvetlit, proc tento script nefunguje? Po spusteni mi to napise
find: paths must precede expression
Usage: find [path...] [expression]
(toho, co je ve funkci). Proc ale chodi ten, co je tam natvrdo (v nastaveni default prav) a ten v te funkci ne, kdyz syntax je temer totozna? Kdyz si necham vypsat tu promennou hledej a opisu ji do prikazoveho radku, tak se provede :-(

Prosim pomoze :-(
#!/bin/sh

# Definice funkce pro zmenu prav...
function prava()
   {
	if [ $2 == "r" ]
	   then opravneni="7750"
	fi
	if [ $2 == "rw" ] 
	   then opravneni="7770"
	fi
	if [ $2 == "" ]
	   then break
	fi

	hledej="find $1 -print0 | xargs -0 chmod $opravneni"
        pwd #kontrola ze zoufalstvi
	echo $hledej #kontrola ze zoufalstvi
	$hledej
   }

# Nastaveni dokumentu...
cesta="/mnt/hdc1/samba/uzivatele/pepa"


# Nastaveni default prav...
cd $cesta
find ./dokumenty -print0 | xargs -0 chmod 7700

# Nastaveni prav danych adresaru...
cd dokumenty
prava ./Adresa_dopis r
-- Zadny uceny z nebe nespad --
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.7.2005 11:23 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: sh script a find uvnitr fce()
Odpovědět | | Sbalit | Link | Blokovat | Admin
eval $hledej
Ale není-li důvod cpát to do proměnné, tak prostě
find "$1" -print0 | xargs -0 chmod "$opravneni"
1.7.2005 11:40 Rozik | skóre: 14
Rozbalit Rozbalit vše Re: sh script a find uvnitr fce()
Diky moc. Alespon jsem zase o neco chytrejsi :-)
-- Zadny uceny z nebe nespad --
1.7.2005 11:43 Rozik | skóre: 14
Rozbalit Rozbalit vše Re: sh script a find uvnitr fce()
Jinak samozrejme jsem to cpat do promenne nepotrebova - to byl uz pochod z nouze :-)
-- Zadny uceny z nebe nespad --
1.7.2005 11:36 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: sh script a find uvnitr fce()
Odpovědět | | Sbalit | Link | Blokovat | Admin
A tohle nefunguje?
#!/bin/sh

# Definice funkce pro zmenu prav...
function prava()
   {
	if [ $2 == "r" ]
	   then opravneni="7750"
	fi
	if [ $2 == "rw" ] 
	   then opravneni="7770"
	fi
	if [ $2 == "" ]
	   then break
	fi

	find "$1" -print0 | xargs -0 chmod $opravneni
	# bez zoufalych kontrol
   }

# Nastaveni dokumentu...
cesta="/mnt/hdc1/samba/uzivatele/pepa"


# Nastaveni default prav...
cd $cesta
find ./dokumenty -print0 | xargs -0 chmod 7700

# Nastaveni prav danych adresaru...
cd dokumenty
prava ./Adresa_dopis r
Zkus popřemýšlet, proč tohle funguje a to tvoje ne. A maly hint pro zoufalce eval $hledej
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
1.7.2005 11:42 Rozik | skóre: 14
Rozbalit Rozbalit vše Re: sh script a find uvnitr fce()
To vim naprosto presne. Zacatky jsou tezke. Netusil jsem, ze tu promennou musim nacpat do "".
-- Zadny uceny z nebe nespad --

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.