Portál AbcLinuxu, 9. listopadu 2025 02:04
Zalíbil se mi getopts a za pomocí návodu na Linux.com. Napsal jsem tedy:
while getopts ":d" options; do case $options in d|--delete ) echo rm -f `WL $3` ;; esac donepro zajímavost ještě ukážu funkci WL():
WL() {
s=`echo $1 | cut -d2 -f1`
r=''
while [ -n "$s" ]
do
l="${s:0:1}"
u=`echo "$l" | tr '[:lower:]' '[:upper:]'`
r="${r}[${l}${u}]"
s="${s:1}"
done
echo *.${r}
}To jsem napsal jen na zkoušku. Jenže bych chtěl:case $options in
aac2flac|aac2mp3|aac2mpc|aac2ogg|flac2mp4|flac2aac|
flac2mp3|flac2mpc|flac2ogg|mp32aac|mp32flac|mp42ogg|
mp42flac|mp42mp3|mp42mpc|mpc2aac|mpc2flac|ogg2aac|
ogg2flac|wma2aac|wma2flac|mp32ogg|mpc2ogg|ogg2mp3|
wma2ogg|mp32mpc|mpc2mp3|ogg2mpc|wma2mp3|wma2mpc)
$(echo $1 | cut -d2 -f1)2wav
wav2$(echo $1 | cut -d2 -f2)
rm -f *.wav
;;
esac
Asi mu vadí dlouhý optiony, že chce jen písmena. Musím to pozměnit? Dále bych chtěl říct, že až to pak budu spouštět, chtěl bych wav2ogg, ne --wav2ogg. Uff, snad mě někdo pochopil...
while getopts ":hb:" OPTION
do
case $OPTION in
h | -help ) help;;
b | -bitrate ) BITRATE=$OPTARG;;
esac
done
shift $(($OPTIND - 1))
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.