Portál AbcLinuxu, 14. listopadu 2025 02:57
Řešení dotazu:
foo=("prvek1" "prvek2" "prvek3") atd..
jak to mám uložit? Jako takto?
echo "foo=(\"prvek1\" \"prvek2\" \"prvek3\")" > /tmp/array.tmpdík
#!/bin/bash
foo=('prvek1' 'prvek2' 'prvek3')
#write
echo "${foo[@]}" > save.tmp
#read'
bar=( $( cat save.tmp ) )
# nebo
# bar=($(<save.tmp))
#print
echo -e "Count: ${#bar[@]}\nValues: ${bar[@]}"
Pokud to obsahuje mezery ale ne nový řádek (nebo jiný zvolený znak):
foo=('prvek1' 'prvek2' 'prvek s mezerou 3')
#write
storeIFS="$IFS"
IFS=$'\n'
echo "${foo[*]}" > save.tmp
IFS="$storeIFS"
#read
storeIFS="$IFS"
IFS=$'\n'
bar=( $( cat save.tmp ) )
# nebo
# bar=($(<save.tmp))
IFS="$storeIFS"
#print
echo -e "Count: ${#bar[@]}\nValues: ${bar[@]}"
uložiť to ako bash skriptnapř. pomocí declare -p
declare -p foo > foo.shco se používá pro variables? To stejný?
VAR="neco tady je" declare -p VAR > foo.shDík
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.