Portál AbcLinuxu, 12. května 2025 08:53
./blabla ~/Pictures/kittens/lol.jpg
./blabla ~/Music/lol/Katrin.jpg
./blabla ~/Pictures/kittens/ #by mi mel otevrit lol.jpg
#ALE
./blabla ~/Pictures/ #neudela nic
#############################################################
Obsah historie.txt:
~/Pictures/kittens/lol.jpg
~/Music/lol/Katrin.jpg
#!/bin/bash if test "${1:$((${#1}-1))}" = "/"; then declare -A last while read line; do dname=${line%/*}/ fname=${line##*/} last[${dname}]=${fname} done < historie.txt if test -n "${last[${1}]}"; then myfile=$1/${last[${1}]} else #neudela nic exit 0 fi else myfile=${1} fi echo ${myfile}Jestli je účelné čistě v bashi je jiná otázka. :) A pak ještě pozor. V té ukázce si ukládáte adresáře s tildou, ale pokud budete volat
./blabla ~/Pictures/kittens/
, tak ve ${1}
už to bude expandované. A pokud to zavoláte ./blabla '~/Pictures/kittens/'
, tak si tu tildu budete muset nahrazovat sám.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.