Portál AbcLinuxu, 14. listopadu 2025 10:25
IFS=$'|'
ARR=(" Lorem ipsum dolor sit am et | Risus urna convallis est et ")
PAR=( ${ARR[0]} )
PAR0=${PAR[0]}
PAR1=$( echo ${PAR0[0]} )
echo $PAR0
echo $PAR1
PAR1=$( echo ${PAR0[0]} ) by měl odstranit mezery, což neudělá.
#!/bin/bash
OLDIFS=$IFS
IFS='|'
ARR=(" Lorem ipsum dolor sit am et | Risus urna convallis est et ")
PAR=( ${ARR[0]} )
PAR0=${PAR[0]}
#remove next line change output
IFS=$OLDIFS
PAR1=$( echo ${PAR0[0]} )
IFS='|'
echo $PAR0
echo "\"$PAR0"
echo $PAR1
echo "\"$PAR1"
echo '----'
IFS=$OLDIFS
echo $PAR0
echo "\"$PAR0"
echo $PAR1
echo "\"$PAR1"
IFS se odvíjí spousta věcí (byť je to furt totéž, jen s různými důsledky), stejně tak například přestavení proměnné LANG může generovat jiný výstup z různých příkazů.echo -n "$IFS" | od -abc.
IFS='|'nemá to být náhodou takto?
IFS=$'|'
IFS=' '
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.