Portál AbcLinuxu, 13. srpna 2025 17:23
#! /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 } jakyromkyMám problém (na první pohled zřejmý), že jakmile zadám víc CD-ROMek, tak udělá disko jen s tou poslední.
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.