Lze do env promenne ulozit vice radkovy text?
Pavel Lisy
pali na tmapy.cz
Čtvrtek Duben 1 17:11:56 CEST 2004
Potrebuji parsovat vystup z ldapu.
Nasledujici kontrukce sice do promennych ulozi pozadovane hodnoty, ale
ty potom zmizi, protoze jsou soucasti shellu spusteneho routou.
ldapsearch -x -w "${USERMNG__LDAP_READ_PASSWD}" -h localhost \
-D "${USERMNG__LDAP_READ_ACCOUNT}" -b
"${USERMNG__LDAP_BASE_DN}" \
-s sub "(uid=${USERMNG__LOGIN})" | while read rawline ; do
# echo CASE: $(echo $rawline | cut -d: -f1)
# echo ENV: $(echo $rawline | cut -d: -f2)
case $(echo $rawline | cut -d: -f1) in
uidNumber* )
echo -n "USERMNG__UIDNUMBER: "
USERMNG__UIDNUMBER=$(echo $rawline | cut -d: -f2)
echo ${USERMNG__UIDNUMBER}
;;
gidNumber* )
echo -n "USERMNG__GIDNUMBER: "
USERMNG__GIDNUMBER=$(echo $rawline | cut -d: -f2)
echo ${USERMNG__GIDNUMBER}
;;
homeDirectory* )
echo -n "USERMNG__HOMEDIR: "
USERMNG__HOMEDIR=$(echo $rawline | cut -d: -f2)
echo ${USERMNG__HOMEDIR}
;;
loginShell* )
echo -n "USERMNG__SHELL: "
USERMNG__SHELL=$(echo $rawline | cut -d: -f2)
echo ${USERMNG__SHELL}
;;
gecos* )
echo -n "USERMNG__GECOS: "
USERMNG__GECOS=$(echo $rawline| cut -d: -f2)
echo ${USERMNG__GECOS}
;;
sambaSID* )
echo -n "USERMNG__SAMBA_SID: "
USERMNG__SAMBA_SID=$(echo $rawline | cut -d: -f2)
echo ${USERMNG__SAMBA_SID}
;;
esac
done
Chtel bych si to tedy napred ulozit do promenne, ale ta mi zrusi konce
radku (resp. echo $PROMENA je neukaze).
Cele to mam napsane v bashi, tak nechci pouzit neco jineho (napr. perl),
kde by to urcite slo elegantneji.
Nechci take delat prilis dotazu do ldapu.
Jsem schopen nejak pres environment promennou prenest text i s konci
radku? Nebo jak to jinak elegantne vyresit?
Pavel
--
Pavel Lisy <pali na tmapy.cz>
T-MAPY spol. s r.o.
Další informace o konferenci Linux