Kezdőlap › Fórumok › Programozás › Shell scriptek HELP! (Unix vizsga…)
- This topic has 9 hozzászólás, 5 résztvevő, and was last updated 21 years, 5 months telt el by
gaboro.
-
SzerzőBejegyzés
-
2004-01-02-12:23 #1926510
Minden rossz íz nélkül: ez a vizsga milyen szintû végzettséget ad? Egyébként ezt a kérdéskört úgy értheted meg, ha vmilyen busybox-shellgyûjteményt megnézel 😆
2004-01-02-12:37 #1926511Fõiskola elsõ félév….
2004-01-02-14:17 #19265121. Sok Unix rendszerben a cp, mv, In parancs egy programként van
megvalósítva, melyre különbözõ nevekkel lehet hivatkozni (hard linkek).2004-01-02-14:48 #1926513gondolom, bash-t kell programozni.
nem vagyok nagy bash programozó, igazából semmi tapasztalatom, de pl. az 5-ösre én ezt csinálnám:Code:#!/bin/bashSearchForFile()
{
local file # a rekurzió miatt közelezõ
if [ -d „$1” ]; # csak ha könyvtár
then
cd „$1”
for file in $PWD/.??* $PWD/*
do
if [ -f „$file” ]; # fájl
then
local path
path=${file%/*}
if [ „${path##*”${file##*/}”*}” != „$path” ]
then
echo $file
fi
elif [ -d „$file” ]; # könyvtár
then
if [ -x „$file” ];
then
SearchForFile $file
fi
fi
done
fi
}
# indítás az aktuális könyvtárra
SearchForFile $PWD
remélem, a tapasztaltabbak majd írnak jobbat neked. vagy inkább egy kicsit utánaolvasol (pl: http://www.tldp.org/LDP/abs/html/index.html)
2004-01-02-15:00 #19265141-esre:
Code:#!/bin/bashif [ -L „$1” ];
then
echo „link”
else
echo „nem link”
fi
2004-01-02-15:27 #1926515A 2-re:
http://www.tldp.org/LDP/abs/html/parameter…tution.html#RFE
majdnem jó, csak ki kell egészíteni a könyvtár paraméterrel, vagyis az argumentumok száma 3 kell legyen, és a for ciklust kicsit átalakítva:Code:#!/bin/bashARGS=3
E_BADARGS=65
E_NOTDIR=66
if [ $# -ne „$ARGS” ]
then
echo „Használat: `basename $0` könyvtár régi_kiterjesztés új_kiterjesztés”
exit $E_BADARGS
fi
if [ -d „$1” ];
then
for filename in *.$2
do
if [ -z `mv $filename ${filename%$2}$3` ];
then
echo „$filename átnevezve”
else
echo „Hiba a $filename átnevezésénél”
fi
done
exit 0
else
echo „Az elsõ paraméter könyvtár kell legyen!”
exit $E_NOTDIR
fi
ezek elég egyszerû feladatok. minden rosszindulat nélkül meg kell kérdeznem: tényleg próbáltál már mindent, meg olvastál shellprogramozásról már valamit? sok sikert.
2004-01-02-15:28 #1926516A 2-re:
http://www.tldp.org/LDP/abs/html/parameter…tution.html#RFE
majdnem jó, csak ki kell egészíteni a könyvtár paraméterrel, vagyis az argumentumok száma 3 kell legyen, és a for ciklust kicsit átalakítva:Code:#!/bin/bashARGS=3
E_BADARGS=65
E_NOTDIR=66
if [ $# -ne „$ARGS” ]
then
echo „Használat: `basename $0` könyvtár régi_kiterjesztés új_kiterjesztés”
exit $E_BADARGS
fi
if [ -d „$1” ];
then
for filename in *.$2
do
if [ -z `mv $filename ${filename%$2}$3` ];
then
echo „$filename átnevezve”
else
echo „Hiba a $filename átnevezésénél”
fi
done
exit 0
else
echo „Az elsõ paraméter könyvtár kell legyen!”
exit $E_NOTDIR
fi
ezek elég egyszerû feladatok. minden rosszindulat nélkül meg kell kérdeznem: tényleg próbáltál már mindent, meg olvastál shellprogramozásról már valamit? sok sikert.
2004-01-02-17:12 #1926517Elsõre:
Code:if [ $(ls -1i `which mv` `which cp` `which ln`|awk ‘{print $1}’|uniq|wc -l) -eq 1 ];then echo „egyben vannak am”;
else echo „nincsenek egyben”;
fi
Code:2.#!/bin/bash
if [ $# -ne 3 ]; then
echo „hasznalat: $0 dir mit mire”
exit 1
fi
cd $1
if [ $? -ne 0 ]; then
exit 1
fi
for i in `ls *$2`; do
mv „$i” „`basename $i $2`$3”
done
4.
#!/bin/bash
if [ $# -ne 0 ]; then echo „$@” >> $0; exit; fi
cat $0|(read;read;read;cat);exit
2004-01-03-12:25 #1926518Code:2.#!/bin/bash
if [ $# -ne 3 ]; then
echo „hasznalat: $0 dir mit mire”
exit 1
fi
cd $1
if [ $? -ne 0 ]; then
exit 1
fi
for i in `ls *$2`; do
mv „$i” „`basename $i $2`$3”
done
és a hibák kezelése? egyébként az 1. tetszik.
2009-12-04-19:55 #18721601. Sok Unix rendszerben a cp, mv, In parancs egy programként van
megvalósítva, melyre különbözõ nevekkel lehet hivatkozni (hard linkek). -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz