Portál AbcLinuxu, 29. prosince 2025 23:43
#! /bin/bash
echo "Vitej v disko_romu ..."
jakyromky()
{
echo "Co mas za romky (/dev/hdc):"
read romka
echo "To je vse ? [y/n]"
read vse
case $vse in
y) echo "Dobre, dobre ..."
udelej_disko
;;
n) echo "Okay, tak znova ..."
jakyromky
;;
*) echo "Chybna volba zadavejte pouze \"y\" nebo \"n\" !"
exit 1
;;
esac
}
udelej_disko()
{
echo -e "Muzem zacit ...\nAz te to prestane bavit, zmackni Ctrl+C."
for((;;))
do
echo "Vyjizdim ..."
eject $romka
echo "Jsem vyjeta a zajizdim ..."
eject -t $romka
done
}
jakyromky
Mám problém (na první pohled zřejmý), že jakmile zadám víc CD-ROMek, tak udělá disko jen s tou poslední.
Samozřejmě je tu možnost udělat další a aby to hodil do přoměnný $dalsi, nebo co já vím, ale cítím, že je tu řešení pomocí if, then, else... Myslím tím připsat novou funkci, ale aby uměla zvyšovat číslo u tý proměnný a to tak, že checkne jestli v ní ještě nic není. Uff, určitě to zní divně, když neznám ty odborný výrazy. Tak co, poradíte mi prosím ?
PS: Ano, vím, že je to hloupej script, jen se učím. 
hynek[~]$ ahoj=juju,koko hynek[~]$ IFS=, hynek[~]$ for i in $ahoj; do echo $i; done juju koko hynek[~]$A vůbec ten design té aplikačky je hnus. Fuj ble, co takhle se nad tím trochu zamyslet?
#! /bin/bash
echo "Vitej v disko_romu ..."
ctiromky()
{
echo "Co mas za romky (/dev/hdc):"
for((;;))
do
read romka
[ -b "$romka" ] && romky=("${romky[@]}" "$romka") || break
done
}
udelej_disko()
{
echo -e "Muzem zacit ...\nAz te to prestane bavit, zmackni Ctrl+C."
for((;;))
do
echo "Vyjizdim ..."
for i in "${romky[@]}"; do eject "$i"; done
echo "Jsem vyjeta a zajizdim ..."
for i in "${romky[@]}"; do eject -t "$i"; done
done
}
ctiromky
[ -n "${romky[*]}" ] && udelej_diskoHlavně bez té šílené rekurze!
echo ${romky[*]}A taky by možná bylo elegantnější pro přidávání do pole použít tvar
romky[${#romky[*]}]="$romka"místo kostrbatého romky=("${romky[@]}" "$romka") Ale to je stejně házení perel takovému nevděčníkovi. Krom toho RTFM bash(1). Na to tam ten manuál je.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.