Portál AbcLinuxu, 27. července 2025 17:34
Řešení dotazu:
$1
měl hodnotu -s
a v proměnné $2
hodnotu 400
. V proměnné $0
je pak příkaz, kterým byl ten skript spuštěn. Pokud chcete používat pojmenované parametry, existují pro to různé knihovny jako výše zmíněná getopt. Můžete si to samozřejmě rozparsovat sám z těch proměnných (ty knihovny nedělají nic jiného), akorát není úplně jednoduché pokrýt hlavně ty okrajové případy tak, aby se to chovalo, jak uživatel očekává.
#!/bin/bash aopt=false bopt=false barg="" while getopts 'ab:' opt; do case "$opt" in a) aopt=true ;; b) bopt=true barg=$OPTARG ;; esac done if $aopt; then echo "Zadali jste přepínač -a" fi if $bopt; then echo "Zadali jste přepínač -b s argumentem $barg" fi shift $((OPTIND-1))Riadok:
shift $((OPTIND-1))zabezpečí že argumenty ktoré nasledujú po prepínači začnú od $1 'ab:' - dvojbodka označuje prepínač s parametrom
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.